【问题标题】:Spring controller @RequestMapping for Included JSP包含 JSP 的 Spring 控制器 @RequestMapping
【发布时间】:2016-02-21 21:17:31
【问题描述】:

在我的网站中,所有的 jsp 页面都包含 bodyHeader.jsp。我必须查询 db 以填充 bodyHeader.jsp 上的一些字段。我在控制器中映射了标题 jsp,我不希望在每个页面上都触发此方法。好吧,这个方法没有被调用,我错过了什么?

在非常jsp中:

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

在控制器中:

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

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

【问题讨论】:

  • 请添加您的视图解析器定义

标签: java spring jsp spring-mvc


【解决方案1】:

对于构建页面布局,我建议使用 Apache Tiles。页面将在运行时从片段中组装。

要使用 Apache Tiles,您可以添加 TilesViewResolver 作为 Spring 组件:

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

还有TilesConfigurer:

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

瓷砖模板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>

另见:

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多