0

Tiles 2 を Spring MVC と統合しようとしていますが、Tiles ビューではなく特定の jsp が表示されます。たとえば、 request="about.htm" の場合、 /jsp/about.jsp に保持されている about.jsp を取得しています。ビューが UrlBasedViewResolver を介して解決されているかのように機能します。私のSpring-servlet.xmlは

<mvc:annotation-driven />
    <context:component-scan base-package="com.spring.controller" />

    <mvc:resources mapping="/resources*" location="resources/"/>



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

    <bean id="TilesViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:basename="views" />
    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" p:definitions="/WEB-INF/tiles-defs.xml" />

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>

    <bean id="loginDao" class="com.spring.dao.impl.LoginDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

クラスの下に保持されているviews.propertiesは

welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView
welcome.url=welcome

friends.(class)=org.springframework.web.servlet.view.tiles2.TilesView
friends.url=friends

office.(class)=org.springframework.web.servlet.view.tiles2.TilesView
office.url=office

about.(class)=org.springframework.web.servlet.view.JstlView
about.url=/jsp/about.jsp

tiles-defs.xml は

<tiles-definitions>

<definition name="baseLayout" template="/WEB-INF/tiles/baseLayout.jsp">
  <put-attribute name="title"  value="Template"/>
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
  <put-attribute name="menu"   value="/WEB-INF/tiles/menu.jsp"/>
  <put-attribute name="body"   value="/WEB-INF/tiles/body.jsp"/>
  <put-attribute name="footer"   value="/WEB-INF/tiles/footer.jsp"/>
</definition>

<definition name="welcome" extends="baseLayout">
  <put-attribute name="title"  value="Welcome"/>
  <put-attribute name="body"   value="/jsp/welcome.jsp"/>      
</definition>

<definition name="friends" extends="baseLayout">
  <put-attribute name="title"  value="Friends"/>
  <put-attribute name="body"   value="/jsp/friends.jsp"/>      
</definition>

<definition name="office" extends="baseLayout">
  <put-attribute name="title"  value="Office"/>
  <put-attribute name="body"   value="/jsp/office.jsp"/>      
</definition>

</tiles-definitions>

ガイドしてください。

4

1 に答える 1

1

ビュー リゾルバーの順序に問題がある可能性があります。タイル ビュー リゾルバーを優先する場合は、ビュー リゾルバーの順序プロパティを追加します。

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    <property name="order" value="2"/>
</bean>
<bean id="TilesViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:basename="views" p:order="1"/>
于 2013-03-28T15:58:54.047 に答える