2012-01-13 71 views
3

我想从Spring-MVC控制器方法转发我的请求到JSP页面。从弹簧控制器转发到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”

“jspfiles”在瓷砖配置文件中被定义为指向的实际JSP文件。当我运行下面的方法:

public String ajaxResponse(HttpServletRequest request, HttpServletResponse response) { 

    request.setAttribute("command", "hello world"); 
    return "jspfile"; 
} 

...我得到的文件作为我的Ajax响应的内容 - 但该文件JSP标签不解析) - 因此我的结论是我的地砖的定义是正确的( ???)。

我的JSP文件看起来像这样:

<%=command%> 

所以我想我的Ajax响应的字符串 “Hello World”。

你能告诉我如何实现我的目的的示例代码?

具体来说,我需要知道:

  1. 应该是什么控制器方法返回类型?

  2. 应该是什么控制器方法实际的返回值(如果它的事项)?

  3. 我应该如何设置在request.getRequestDispatcher(...) JSP文件路径,以便将认识?

+1

你的第二个控制器看起来是正确的我 - 如果你浏览到调用该方法,而不是做它一个Ajax请求的URL会发生什么? JSP是否正确显示? – jeff 2012-01-13 19:51:05

回答

3

看一看控制器例子在这里: http://maestric.com/doc/java/spring/mvc

这是一个有点过时了,但你必须做什么的概念是相同的。 Spring 3有基于注解的方法来完成这个例子中的很多事情。

+0

你是对的。我实际上并不需要使用'request.getRequestDispatcher(“jspfile”)。forward(request,response);' - 因为转发到jsp是由框架自动完成的。 – rapt 2012-01-16 15:45:27