我正在尝试使用带注释的控制器完成 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?
谢谢!
答案 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
个对象。这就是视图从控制器获取数据的方式。