如何将POJO bean绑定到公共头页面

时间:2014-03-11 09:40:11

标签: java jsp spring-mvc

我使用Spring tiles框架来映射视图,每个页面都包含头文件(一个常见的JSP头页面)​​+ body(真实视图)。

tiles-definition.xml如下所示:

 <definition extends="defaultTemplate" name="dashboard">
    <put-attribute name="header" value="/WEB-INF/jsp/home/mainPageHeader.jsp" />
    <put-attribute name="body" value="/WEB-INF/jsp/home/dashboard.jsp" />
 </definition>

到目前为止,mainPageHeader.jsp是静态页面,但现在我想将一些bean绑定到此标题页面。但它没有用,我在我的dashboard控制器中尝试如下:

ModelAndView model = new ModelAndView("dashboard");
model.addObject("dashboardBean", dashboardObj); // bean related to dashboard page 
model.addObject("headerBean", headerObject); // new bean sending for header page.
return model;

但是当仪表板页面加载时,我可以看到异常:

Error 500: java.lang.IllegalStateException: Neither BindingResult nor plain target
object for bean name 'headerBean' available as request attribute.

我可以理解这个问题,我传递给模型的headerBean没有与视图关联。但是没有任何关于如何将bean与这个公共头页绑定的线索。

1 个答案:

答案 0 :(得分:0)

尝试使用 addAttribute 而不是addObject

ModelAndView model = new ModelAndView("dashboard"); model.addAttribute("dashboardBean", dashboardObj); // bean related to dashboard page model.addAttribute("headerBean", headerObject); // new bean sending for header page. return model;