在WEB-INF / jsp中有更多文件夹的viewResolver在spring中不起作用

时间:2015-06-22 05:59:48

标签: java spring jsp spring-mvc

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <!--  avoid '???' -->
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp"/>
</bean>

如果我在jsp下创建其他子文件夹,例如 / WEB-INF / jsp / reports,/ WEB-INF / jsp / insertions

我应该如何配置viewResolver来解析这些新的子文件夹?

4 个答案:

答案 0 :(得分:7)

假设您在test.jsp

下有一个jsp /WEB-INF/jsp/reports

从您的控制器返回

@RequestMapping("/helloWorld")
    public String helloWorld(Model model) {
        model.addAttribute("message", "Hello World!");
        return "reports/test";
    }

答案 1 :(得分:0)

您可以配置Tiles布局系统

    <bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" id="tilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/layouts/layouts.xml</value>
            <!-- Scan views directory for Tiles configurations -->
            <value>/WEB-INF/views/**/views.xml</value>
        </list>
    </property>
</bean>

然后创建views.xml,其中包含视图的所有路径以与控制器中的ModelAndView链接。

views.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC
    "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
    "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">

     <tiles-definitions>

       <definition name="refreshActivityPlan" extends="basic.ajax-requirejs">
               <put-attribute name="content" value="/WEB-INF/views/common/activity_plan/activityPlanView.jsp"/>
        </definition>


       </tiles-definitions>

然后终于在你的控制器中:

    ModelAndView mav = new ModelAndView("refreshActivityPlan");
    mav = getModelAndView(id, subStep, mav);
    return mav;

答案 2 :(得分:0)

从您的控制器返回值report / xxx或insertions / yyy

答案 3 :(得分:0)

View解析器获取您在XML文件或Java配置中配置的前缀,并为其前缀以您提供的jsp文件名,

在这种情况下,解析程序正在查找/WEB-INF/jsp/test.jsp。

在创建ModelAndView时用“报告/测试”替换“测试” 对象。