2012-07-22 120 views
3

我已經建立了roo應用程序。 roo內置的默認視圖解析器用於jspx文件。也可以支持jsp文件嗎?我嘗試配置兩個viewResolvers,但似乎沒有一個urlBasedViewResolvers可以共存,它或者一個。在春天支持jsp和jspx 3.0

更改順序不會影響行爲。如果我爲jspx設置了order = 1,那麼如果我搜索任何.jsp文件,它會給我404。同樣,如果我搜索jspx,但jsp viewResolver設置爲order = 1。

有沒有辦法做到這一點?謝謝!

這裏是我的webmvc-config.xml中

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="order" value="1"/> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".jspx" /> 
    </bean> 
    <bean id="jspViewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="order" value="2"/> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

回答

6

一個可能不返回的時候,我能想到的就是不提供後綴,並且明確指定的.jsp或.jspx後綴一個很好的解決方案一個視圖名稱。

<bean id="jspViewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="order" value="2"/> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value="" /> 
</bean> 

,並返回一個視圖名稱時:

return "myview.jsp"; 
return "myview.jspx"; 

OR

另一種解決辦法,如果你知道你的JSP和JSPX享有名稱模式名稱將是提供的視圖名稱爲一體更多參數到其中一個解析器:

<bean id="jspViewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="order" value="2"/> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value="jsp" /> 
    <property name="viewNames"> 
     <list> 
    <value>view1*</view> 
    <value>view2*</view> 
    <value>view3*</view> 
    </list> 
    </property> 
</bean> 

如果此viewresolver返回空i如果它不匹配任何視圖模式,它會轉到您的jspx視圖解析器。

+1

第二種方法取得了訣竅,但是,我必須手動輸入視圖名稱,而不是大問題。 – dnul 2012-07-22 22:31:35