2010-07-05 48 views
2

我一直在嘗試使用UrlBasedViewResolver呈現瓷磚視圖幾個小時。任何人都可以告訴我它是如何完成的。一般我努力工作,這一點如何在春天顯示tiles2.tilesview mvc3

<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"></property> 
    <property name="prefix" value="/WEB-INF/jsp/"></property> 
    <property name="suffix" value=".jsp"></property> 
    <property name="order" value="1"/>    
</bean> 


<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> 
    <property name="basename" value="views"/> 
    <property name="order" value="0"/> 
</bean> 

,在我views.properties文件,我會這將由jstlView呈現我的其他視圖的路徑。這裏是它的例外

javax.servlet.ServletException: Could not resolve view with name 'welcome' in servlet with name 'epub' 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1042) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 

雖然這只是不行。它說它無法呈現視圖。我知道這不是因爲鏈接2視圖解析器,也不是因爲tile配置。因爲當我在view.properties文件中定義tile的視圖類時,它會起作用。所以我認爲在某些方面urlbasedviewresolver和tilesview不能一起工作。我會有很多tile佈局,所以在我的屬性文件中定義它們並不是很美妙(我會有幾個常規的jsp頁面,所以可以使用resourceBundleViewResolver)任何想法?

回答

2

這裏不用你需要設置瓷磚(我假設你正在使用瓷磚2)

1º步

定義的TilesConfigurer

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <!--Set up your Tiles definition RIGHT HERE-->  
      <value>/WEB-INF/defs/general.xml</value> 
     </list> 
    </property> 
</bean> 

2º一步

什麼

設置您的視圖解析器(您可以使用UrlBasedViewResolver或Res ourceBundleViewResolver)。但請記住,您是否使用UrlBasedViewResolver,Spring 不允許您使用其他UrlBasedViewResolver子類,如InternalResourceView,VelocityView和FreeMarkerView等

要麼

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <!--Tiles IS NOT JSP--> 
    <!--So you can not use JSP stuffs like .jsp suffix--> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
</bean> 

或者

<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> 
    <!--views.properties is located in The root of the classpath--> 
    <property name="basename" value="views"/> 
</bean> 

這裏去某一條view.properties

#You MUST SET UP each Target view class 
welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView 
#url MUST MATCH Tiles definition 
welcome.url=welcome 
+0

TNX的代碼,所以我不能使用後綴和前綴。我刪除了後綴前綴部分,它的功能就像一個魅力。我不知道爲什麼我沒有嘗試b4。我使用ResourceBundleViewResolver爲我的jsp頁面(我將有非常少的jsp頁面)和UrlBasedViewResolver爲我的瓷磚。你拯救了我的一天。非常感謝亞瑟! – beku8 2010-07-07 04:50:23