Spring中的带注释的控制器,将参数传递给jsp

时间:2010-10-25 13:19:28

标签: spring jsp spring-mvc

我正在尝试使用带注释的控制器完成 that tutorial。我陷入了第2步。这是他们对简单控制器的作用:

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String now = (new Date()).toString();
    logger.info("Returning hello view with " + now);

    return new ModelAndView("WEB-INF/jsp/hello.jsp", "now", now);
}

我尝试用

替换它
    @RequestMapping(method = RequestMethod.GET)
public String showUserForm(ModelMap model)
{
    String now = (new Date()).toString();
    logger.info("Returning hello view with " + now);
    model.addAttribute("now", now);
    return "WEB-INF/jsp/hello.jsp";
}

但是hello.jsp中没有读取参数“now”(可以通过第一个链接访问它,我不能在这里粘贴html)。

如何将该参数传递给hello.jsp?

谢谢!

3 个答案:

答案 0 :(得分:0)

通常,您的视图是通过视图解析程序解析的,其默认配置包括WEB-INF/jsp作为前缀,.jsp作为后缀。

所以视图名称(你应该返回的字符串)只是"hello"

如果不是这种情况,请分享您的dispatcher-servlet.xml和jsp本身。

答案 1 :(得分:0)

问题可能在于您尝试使用scriptlet在JSP中输出数据。像这样:

<p><%= now %></p>

这不起作用,因为变量不在页面范围内,而是在请求范围内。您应该使用EL输出值,如下所示:

<p>${now}</p>

或者,如果您想使用scriptlet,请执行以下操作:

<p><%= pageContext.findAttribute("now") %></p>

如果您可以发布您的JSP代码,这将非常有用。

答案 2 :(得分:-1)

您的showUserForm()方法未返回ModelAndView个对象。这就是视图从控制器获取数据的方式。