關於springmvc配置html和jsp兩種檢視解析器所出現的問題
阿新 • • 發佈:2019-02-19
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....
以上內容均為個人所述,如有不妥,歡迎指正,謝謝