简体   繁体   English

Spring控制器@RequestMapping for Included JSP

[英]Spring controller @RequestMapping for Included JSP

Through out my site, all jsp pages include bodyHeader.jsp. 在我的网站中,所有jsp页面都包含bodyHeader.jsp。 I have to query db to populate some fields on bodyHeader.jsp. 我必须查询db以填充bodyHeader.jsp上的一些字段。 I mapped the header jsp in my controller, i do NOT want this method to be triggered on every page. 我在我的控制器中映射了头jsp,我不希望在每个页面上触发此方法。 Well this method is not be called, what I am missing? 那么这个方法不会被调用,我错过了什么?

In very jsp: 在非常jsp:

<jsp:include page="/fragments/bodyHeader.jsp"/>

In controller: 在控制器中:

@RequestMapping(value = "/fragments/bodyHeader", method = RequestMethod.GET)
public void getCategoryList(Model aaModel) {

    aaModel.addAttribute("categories", this.caService.findCategoryByLevel(0));
}

For building page layout I recommend using Apache Tiles. 为了构建页面布局,我建议使用Apache Tiles。 The pages will be assembled from fragments at runtime. 页面将在运行时从片段组装。

To use Apache Tiles you can add TilesViewResolver as Spring component: 要使用Apache Tiles,您可以将TilesViewResolver添加为Spring组件:

...
<bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
...

and also TilesConfigurer : 还有TilesConfigurer

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property>
        <list>
            <value>/WEB-INF/views/**/views.xml</value>
        </list>
    </property>
</bean>

Tiles template views.xml : Tiles模板views.xml

...
<tiles-definition>
    <definition name="template" template="/WEB_INF/views/common_template.jsp">
        <put-attribute name="header" value="/WEB_INF/views/tiles/header.jsp"/>
        <put-attribute name="side" value="/WEB_INF/views/tiles/side.jsp"/>
        ...
    </definition>
    <definition name="main" extends="template">
        <put-attribute name="content" value="/WEB-INF/views/main.jsp"/>
    </definition>
</tiles-definition>

See Also: 也可以看看:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM