日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC 教程,快速入门,深入分析——多视图控制器

發布時間:2025/4/16 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC 教程,快速入门,深入分析——多视图控制器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

十八、多視圖控制器

?

當有jsp,flt (模板)等多種頁面生成展示方式時,spring默認使用的是“視圖解析器鏈”。 真是一個鏈,所以性能不好,spring會在“視圖解析器鏈”中順序的查找,直到找到對應的 “視圖解析器” 。jsp視圖解析器一定要寫在最后面,因為一旦調用jsp,就向瀏覽器發出數據了,Spring就沒有機會再嘗試下一個了。

所以自己寫一個"多視圖解析器",依靠擴展名來區分,可一次準確的選中一個 視圖解析器,提高性能(會有多少提高呢?沒測試過).

?

下面的例子支持jsp,flt (模板)兩種頁面生成展示方式,你中以自己添加,支持更多。

?

Xml代碼??

  • ???<!--?多視圖處理器?-->??

  • ???<bean?class="com.xxx.core.web.MixedViewResolver">??

  • ????<property?name="resolvers">??

  • ????????<map>??

  • ????????????<entry?key="jsp">??

  • ????????????????<bean?class="org.springframework.web.servlet.view.InternalResourceViewResolver">??

  • ????????????????????<property?name="prefix"?value="/WEB-INF/jsp/"/>??

  • ????????????????????<property?name="viewClass"?value="org.springframework.web.servlet.view.JstlView"></property>??

  • ????????????????</bean>??

  • ????????????</entry>??

  • ????????????<entry?key="ftl">??

  • ????????????????<bean?class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">??

  • ????????????????????<property?name="cache"?value="true"/>??

  • ????????????????????<property?name="contentType"?value="text/html;charset=UTF-8"></property>??

  • ????????????????????<!--?宏命令的支持??-->????

  • ????????????????????<property?name="exposeSpringMacroHelpers"?value="true"/>??

  • ????????????????????<property?name="viewClass"?value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>??

  • ????????????????????<property?name="requestContextAttribute"?value="rc"></property>??

  • ????????????????</bean>??

  • ????????????</entry>??

  • ????????</map>??

  • ????</property>??

  • </bean>??

  • ??

  • <!--?freemarker?config?-->??

  • ???<bean?id="freeMarkerConfigurer"?class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">???

  • ???????<property?name="templateLoaderPath"?value="/WEB-INF/ftl/"?/>???

  • ???????<property?name="freemarkerSettings">???

  • ???????????<props>???

  • ???????????????<prop?key="template_update_delay">5</prop>???

  • ???????????????<prop?key="default_encoding">UTF-8</prop>???

  • ???????????????<prop?key="locale">zh_CN</prop>???

  • ???????????</props>???

  • ???????</property>???

  • ???</bean>???

  • ??

    ?

    Java代碼??

  • import?java.util.Locale;??

  • import?java.util.Map;??

  • import?org.springframework.web.servlet.View;??

  • import?org.springframework.web.servlet.ViewResolver;??

  • ??

  • /**??

  • *?說明:?多視圖處理器?

  • *??

  • *?@author??趙磊??

  • *?@version?創建時間:2011-8-19?上午09:41:09???

  • */???

  • public?class?MixedViewResolver?implements?ViewResolver{??

  • ????private?Map<String,ViewResolver>?resolvers;??

  • ??

  • ????public?void?setResolvers(Map<String,?ViewResolver>?resolvers)?{??

  • ????????this.resolvers?=?resolvers;??

  • ????}??

  • ??????

  • ????public?View?resolveViewName(String?viewName,Locale?locale)?throws?Exception{??

  • ????????int?n=viewName.lastIndexOf(".");??

  • ????????if(n!=-1){??

  • ????????????//取出擴展名??

  • ????????????String?suffix=viewName.substring(n+1);??

  • ????????????//取出對應的ViewResolver??

  • ????????????ViewResolver?resolver=resolvers.get(suffix);??

  • ????????????if(resolver==null){??

  • ????????????????throw?new?RuntimeException("No?ViewResolver?for?"+suffix);??

  • ????????????}??

  • ????????????return??resolver.resolveViewName(viewName,?locale);??

  • ????????}else{??

  • ????????????ViewResolver?resolver=resolvers.get("jsp");??

  • ????????????return??resolver.resolveViewName(viewName,?locale);??

  • ????????}??

  • ????}??

  • }??



  • 轉載于:https://blog.51cto.com/lidonglong/1703588

    總結

    以上是生活随笔為你收集整理的Spring MVC 教程,快速入门,深入分析——多视图控制器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。