2010-07-05 37 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