我正在尝试将一个Spring-MVC控制器方法中的请求转发到一个JSP页面。
我的控制器方法应该处理Ajax请求。通过将请求转发到JSP文件,我希望Ajax请求的响应是JSP文件的(动态)HTML输出内容。
我尝试的方法:
public ModelAndView ajaxResponse(HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("command", "hello world");
request.getRequestDispatcher("jspfile").forward(request, response);
return null;
}
这个失败了,我得到了“HTTP状态404”。
在tiles配置文件中,“jspfiles”被定义为指向实际的jsp文件。当我运行以下方法时:
public String ajaxResponse(HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("command", "hello world");
return "jspfile";
}
我通过Ajax响应获得文件内容,但是该文件中的JSP标签未经过解析 - 因此我得出我的tiles定义是正确的结论 (???)。
我的JSP文件如下:
<%=command%>
我希望我的Ajax响应能够返回字符串“hello world”。
你能否给我展示一个实现此目的的示例代码呢?
具体来说,我需要了解:
控制器方法的返回类型应该是什么?
如果有影响的话,控制器方法的实际返回值应该是什么?
我应该如何在
request.getRequestDispatcher(...)
中设置JSP文件路径,以便其能够被识别?