2013-03-28 1 views
0

Tiles 2를 Spring MVC와 통합하려고하지만 Tiles View 대신 특정 JSP가 표시됩니다. 예를 들어, 요청 = "about.htm"인 경우 /jsp/about.jsp에 보관되는 about.jsp가 표시됩니다. UrlBasedViewResolver를 통해보기가 해결되는 것처럼 작동합니다. 내 봄-servlet.xml 파일 클래스 아래에 보관Tiles 2 with Spring MVC 해결할 수 없음

<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"/> 
관련 문제