struts 2とsitemeshの構成
16877 ワード
Spring/Webwork/sitemesh/freeMarkerの関連配置webを統合した.xmlは3つのfilterを構成する必要があります.この3つのfilterの順序は逆転できません.ActionContextCleanUpは、sitemeshがActionConextを使用できるように、webworkの実行が完了した後にActionContextのクリーンアップを遅らせるように設定し、sitemeshはWebworkの実行が完了した後にテンプレートの組み立てを行うように設定する必要があります.ここではFreeMarkerをウェブサイトのテンプレートとして使用し、FreeMarkerPageFilterはwebwork 2である.2提供するエンハンスメントクラス(freemarkerをウェブサイトテンプレートとして推奨)、JSPをウェブサイトテンプレートとして使用する場合はcomに変更する.opensymphony.module.sitemesh.filter.PageFilter.この3つのfilterのmapping URLはすべて/*でなければならない.これは、webworkのfilterが使用する特殊なリソースが/webwork/*のようなURLネットワークの位置から取得されるため、webwork filterはすべてのURLをキャプチャする必要があり、それに応じて、他の2つのfilterもすべてのURLをキャプチャする必要がある.JspSupportServiceletは、FreeMarkerをViewとして使用する場合、FreeMarkerがJSP Tagを使用できるようにするために、このServiceletを設定する補助クラスです.dwrはAJAX分散呼び出しフレームワークであり,Webworkはdwrを用いてAJAX方式のremote form検証を実現する.
web.xml
dwr.xmlもWEB-INFディレクトリの下に配置され、dwrによってクライアントJavaScriptに露出するサーバ側オブジェクトを構成し、次のデフォルト構成はwebworkのremote form検証をサポートするために使用されます.
dwr.xml
sitemesh.xmlもWEB-INFの下に置く、sitemeshの動作を配置し、どのようなページ解析器や装飾器を使用するか、ファイルを不要にしてもよい、sitemesh.JArにはデフォルトの構成があり、より多くの装飾器が含まれています.より多くの装飾器が必要でない場合は、複数の装飾器呼び出しによる無意味な性能損失を回避するために、自分で構成したほうがいいです.
sitemesh.xml
decroatorsもWEB-INFの下に置いて、装飾器を配置してどんなURLを飾ります
decorators.xml
web.xml
< xml version="1.0" encoding="UTF-8" >
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>ActionContextCleanUp</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.webwork.sitemesh.FreeMarkerPageFilter</filter-class>
</filter>
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>ActionContextCleanUp</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>com.opensymphony.webwork.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
dwr.xmlもWEB-INFディレクトリの下に配置され、dwrによってクライアントJavaScriptに露出するサーバ側オブジェクトを構成し、次のデフォルト構成はwebworkのremote form検証をサポートするために使用されます.
dwr.xml
< xml version="1.0" encoding="UTF-8" >
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="validator">
<param name="class" value="com.opensymphony.webwork.validators.DWRValidator"/>
</create>
<convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
</allow>
<signatures>
<![CDATA[webwork:
import java.util.Map;
import com.opensymphony.webwork.validators.DWRValidator;
DWRValidator.doPost(String, String, Map<String, String>);
]]>
</signatures>
</dwr>
sitemesh.xmlもWEB-INFの下に置く、sitemeshの動作を配置し、どのようなページ解析器や装飾器を使用するか、ファイルを不要にしてもよい、sitemesh.JArにはデフォルトの構成があり、より多くの装飾器が含まれています.より多くの装飾器が必要でない場合は、複数の装飾器呼び出しによる無意味な性能損失を回避するために、自分で構成したほうがいいです.
sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
decroatorsもWEB-INFの下に置いて、装飾器を配置してどんなURLを飾ります
decorators.xml
<decorators defaultdir="/WEB-INF/decorators">
<excludes>
<pattern>/css/*</pattern>
<pattern>/js/*</pattern>
<pattern>/images/*</pattern>
<pattern>/dojo/*</pattern>
<pattern>/webwork/*</pattern>
<pattern>/config-browser/*</pattern>
</excludes>
<decorator name="main" page="main.ftl">
<pattern>*.action</pattern>
</decorator>
</decorators>