2013-03-28 139 views
0

我想要將Tiles 2與Spring MVC集成,但我得到一個特定的jsp顯示,而不是瓷磚視圖。對於前者,如果request =「about.htm」,那麼我得到保存在/jsp/about.jsp處的about.jsp。它的工作方式就好像通過UrlBasedViewResolver解決了視圖問題。 我爲spring-servlet.xml是與春天MVC瓷磚2不解決

<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 

瓷磚 - 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> 

請指導。

回答

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"/>