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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2.2.1关于sitemesh和freemarker整合的细节

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2.2.1关于sitemesh和freemarker整合的细节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://nighty.iteye.com/blog/788241

有段時間沒有使用struts2了,上了官網發現已經更新到2.2.1版本,沒有細看note,照著以前老的方式配置web.xml,發現裝飾器sitemesh對freemarker不起作用,折騰了一整天。最后還是老老實實看官方的文檔,發現以前書上推薦的配置已經過時。老的一般配置如下:

Xml代碼??
  • <filter>??
  • ???<filter-name>ActionContextCleanUp</filter-name>??
  • ???<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>??
  • </filter>??
  • <filter>??
  • ???<filter-name>sitemesh</filter-name>??
  • ???<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>??
  • </filter>??
  • <filter>??
  • ???<filter-name>struts2</filter-name>??
  • ???<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>??
  • </filter>??
  • ????? 從struts2.1.3開始ActionContextCleanUp 和 FilterDispatcher過濾器,已經不建議使用了。將使用StrutsPrepareFilter?和StrutsExecuteFilter攔截器替代。正確的配置方式如下:

    Xml代碼??
  • <filter>??
  • ????????<filter-name>struts-prepare</filter-name>??
  • ????????<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>??
  • ????</filter>??
  • ????<filter>??
  • ????????<filter-name>sitemesh</filter-name>??
  • ????????<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>??
  • ????</filter>??
  • ????<filter>??
  • ????????<filter-name>struts-execute</filter-name>??
  • ????????<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>??
  • ????</filter>??
  • ??????
  • ????<filter-mapping>??
  • ????????<filter-name>struts-prepare</filter-name>??
  • ????????<url-pattern>/*</url-pattern>??
  • ????</filter-mapping>??
  • ????<filter-mapping>??
  • ????????<filter-name>sitemesh</filter-name>??
  • ????????<url-pattern>/*</url-pattern>??
  • ????????<dispatcher>REQUEST</dispatcher>??
  • ????????<dispatcher>FORWARD</dispatcher>??
  • ????????<dispatcher>INCLUDE</dispatcher>??
  • ????</filter-mapping>??
  • ????<filter-mapping>??
  • ????????<filter-name>struts-execute</filter-name>??
  • ????????<url-pattern>/*</url-pattern>??
  • ????</filter-mapping>??
  • ??????
  • ????<servlet>??
  • ????????<servlet-name>sitemesh-freemarker</servlet-name>??
  • ????????<servlet-class>org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</servlet-class>??
  • ????????<init-param>??
  • ????????????<param-name>default_encoding</param-name>??
  • ????????????<param-value>UTF-8</param-value>??
  • ????????</init-param>??
  • ????????<load-on-startup>1</load-on-startup>??
  • ????</servlet>??
  • ????<servlet-mapping>??
  • ????????<servlet-name>sitemesh-freemarker</servlet-name>??
  • ????????<url-pattern>*.ftl</url-pattern>??
  • ????</servlet-mapping>??
  • ????<listener>??
  • ????????<listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>??
  • ????</listener>??
  • ??? 注意:

    ??? 1. com.opensymphony.sitemesh.webapp.SiteMeshFilter這個過濾器是必需的,否則裝飾不起作用

    ??? 2. 為了支持FreeMaker或Velocity,必須添加org.apache.struts2.sitemesh.FreemarkerDecoratorServlet這個Servlet,官方原話:

    寫道 From 2.2+ the recommended way to use Freemarker with Sitemesh is through the org.apache.struts2.sitemesh.FreemarkerDecoratorServlet servlet

    ??? 3. 而已從2.2.x開始,必須添加org.apache.struts2.dispatcher.ng.listener.StrutsListener這個監聽器

    寫道 From 2.2+ the new com.opensymphony.sitemesh.webapp.SiteMeshFilter filter and Struts org.apache.struts2.dispatcher.ng.listener.StrutsListener context listener must be added to web.xml,

    ??? 4. 這樣sitemesh裝飾器才能在freemarker模板中起作用。


    總結

    以上是生活随笔為你收集整理的struts2.2.1关于sitemesh和freemarker整合的细节的全部內容,希望文章能夠幫你解決所遇到的問題。

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