1. 程式人生 > >關於springmvc配置html和jsp兩種檢視解析器所出現的問題

關於springmvc配置html和jsp兩種檢視解析器所出現的問題

springmvc的檢視解析器怎麼配置?

當然是真麼配置了(舉個栗子):


沒毛病吧,跳轉頁面(jsp)嗖嗖的。

那要是html頁面怎麼配置呢?想都不用想,當然是這麼配置(舉個橘子):


執行一下(html),沒毛病!

問題:

那要是既要有jsp檢視,又要有html檢視呢?這麼辦唄(舉個柿子):



是不是跟你想到一塊去了呢?那麼來執行一下:


就是要訪問的是jsp頁面的時候,會加上jsp檢視的字首和字尾,,但是,如果還想訪問html頁面時,還是會加上jsp檢視的字首和字尾,然後就404了;把html的檢視解析放在上面,情況則會相反,,各種設定優先順序也無濟於事.....

解決

如果你也遇到了同樣的問題,那麼剛好,我已經找到了解決的方法,供您參考:

<!-- 配置html檢視解析器 -->
<!-- html檢視解析器 必須先配置freemarkerConfig,注意html是沒有prefix字首屬性的-->  
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">    
       <property name="templateLoaderPath">    
           <value>/html/</value>    
       </property>    
    </bean>    
    <bean id="htmlviewResolver"    
       class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">    
       <property name="suffix" value=".html" />   
       <property name="order" value="0"></property>   
       <property name="contentType" value="text/html;charset=UTF-8"></property>           
   </bean>   

<!-- jsp檢視解析器 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> -->
<!-- 如果配置的有html檢視解析器,不能用jstl的那個 -->
<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> 
<property name="prefix" value="/jsp/" />   <!-- jsp字首 -->
<property name="suffix" value=".jsp" /><!-- jsp字尾 -->
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="order" value="0" /><!-- 配置優先等級,越小優先順序越高 -->
</bean>

這麼配置就OK了,註解已經寫得很清楚

不過我當時配置的時候還遇上了這麼一個異常:


找不到FreeMarkerConfigurationFactory類,明顯是少導包了。如果你也遇到了這個異常,那麼新增一個依賴就可以了


大功告成,美滋滋

java就像一盒巧克力,你永遠不知道,ta還爆出什麼bug....

以上內容均為個人所述,如有不妥,歡迎指正,謝謝