2

UrlBasedViewResolver で何時間もタイル ビューをレンダリングしようとしています。誰かがそれがどのように行われたかを見せてもらえますか. 私は一般的にこれを解決しようとしています

<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 つのビュー リゾルバーをチェーンするためでも、タイル conf のためでもないことはわかっています。view.properties ファイルでタイルのビュー クラスを定義すると機能するためです。したがって、urlbasedviewresolver と tilesview は何らかの形で連携できないと思います。多くのタイル レイアウトがあるため、それらすべてをプロパティ ファイルで定義するのはあまり美しくありません (通常の JSP ページはほとんどないので、resourceBundleViewResolver を使用しても問題ありません)。何かアイデアはありますか?

4

1 に答える 1

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またはResourceBundleViewResolverのいずれかを使用できます)。ただし、UrlBasedViewResolverを使用するかどうかに注意してください。Springでは、InternalResourceView、VelocityView、FreeMarkerViewなどの他のUrlBasedViewResolverサブクラスを使用できません。

また

<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
于 2010-07-06T03:01:19.737 に答える