Strutsノート(一)Strutsプロファイル

9567 ワード

1.Strutsプロファイル
  • Webアプリケーション配置記述子web.xml
  • Strutsプロファイルstruts-config.xml
  • アプリケーションリソースプロファイルアプリケーション.properties
  • strutsコンポーネントプロファイル
  • 1.1. web.xml
  • strutsのActionServiceletとラベルライブラリを構成します.
  • 次のようになります.
    
    <!—① -->
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    <!—② -->
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>
    			org.apache.struts.action.ActionServlet
    </servlet-class>
    		<init-param>
    			<param-name>application</param-name>
    			<param-value>Application</param-value>
    		</init-param>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/conf/struts-config.xml</param-value>
    		</init-param>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>2</param-value>
    		</init-param>
    		<init-param>
    			<param-name>detail</param-name>
    			<param-value>2</param-value>
    			<servlet-name>action</servlet-name>
    			<url-pattern>*.do</url-pattern>
    		</servlet-mapping>
    <!—④-->
    			<welcome-file-list>
    				<welcome-file>index.jsp</welcome-file>
    			</welcome-file-list>
    <!—⑤-->
    			<taglib>
    				<taglib-uri>/tags/struts-bean</taglib-uri>
    				<taglib-location>/WEB-INF/lib/struts-bean.tld</taglib-location>
    			</taglib>
    			<taglib>
    				<taglib-uri>/tags/struts-html</taglib-uri>
    				<taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location>
    			</taglib>
    			<taglib>
    				<taglib-uri>/tags/struts-logic</taglib-uri>
    				<taglib-location>/WEB-INF/lib/struts-logic.tld</taglib-location>
    			</taglib>
    </web-app>
    

    コードの番号付けの箇所は以下のコメントに対応します.
    ①ウェブアプリケーション配置記述子として識別:最初の2行はファイルを1つのウェブアプリケーション配置記述子として識別する.
    ②ActionServiceletの構成—このセクションでは、コンテナにaction名の下にあるActionServiceletをロードするように指示します.ActionServiceletには、アプリケーション、config、debug、detailの4つのパラメータが渡されます.ActionServiceletは、他のパラメータを受け入れることもできます.は、コンテナにaction servletの重みを与えます.2に設定すると、必要に応じて他のservletを最初に読み込むことができます.これ
    ActionServiceletをサブクラス化する際に重要になり、他のservletで事前に読み込まれたリソースを使用できるようになります.1つのアプリケーションでは、1つのActionServiceletまたはActionServiceletのサブクラスのみを読み込むことができます.ActionServiceletは、アプリケーション内の他のコンポーネントとリソースを共有できるように設計されています.マルチActionServiceletを読み込むと競合します.1つのActionServiceletは、別のActionServiceletがコミットしたリソースを書き換える可能性があるためです.Struts 1.1はモジュール化アプリケーションをサポートしますが、ActionServiceletを1つだけロードできます.
    ③Strutsを識別する要求-この部分は容器が*に一致することを示す.do形式のファイルリクエストはaction servletに転送されます.これが私たちが①で構成したActionServiceletです.この形式に一致しないファイル要求はStrutsによって処理されません.例えば*.htmlまたは*jspファイルのリクエストは、通常、コンテナ内に構築されたサービスによって処理される.
    ④welcomeファイルの作成-残念ながら、ここでindexを設定します.doファイルは動作しません.希望の容器
    Welcomeファイルも物理ファイルです.
    ⑤ラベルライブラリの構成-アプリケーションで使用するラベルライブラリを構成します.3つのコアのStrutsラベルライブラリ-bean、html、logic-は、ほとんどのアプリケーションで使用できます.アプリケーションで他のラベルライブラリを使用している場合は、ここでも構成されています.最初の要素、は、ラベルライブラリの論理名を与えます.これは通常ファイルパスのように見えますが、実際にはそうではありません.JSPはラベルライブラリのインポート時にこのURIを参照する.2番目の要素、は、コンテキストに関連するラベルライブラリ記述子(*.tld)パスを提供します.TLDは、ライブラリの実際のタイプ(Javaクラス)を識別します.このライブラリが必要な場合、コンテナはラベルライブラリクラスファイルのclasspathを検索します.Strutsラベルライブラリでは、コンテナはstrutsになります.jarファイルにこれらのパッケージが見つかりました.
    1.2. struts-config.xml
  • xml)は、複数のキーフレームコンポーネントをロードするために使用される.これらのオブジェクトは、Struts構成を一緒に構成します.Struts構成はStruts ActionServiceletとともに動作し、アプリケーションの制御層を作成します.
  • Struts構成はあなたのアプリケーションの真の青写真です.フォームにどのフィールドがあるか知っています.JSPファイルがどこで見つけられるか知っています.アプリケーションが実行する各アクション、および各actionに必要な実際のリソースも知っています.Struts構成の各コンポーネントはJavaオブジェクトです.ActionFormオブジェクトは、フィールドとフォームを知っています.ActionForwardオブジェクトは、JSPまたはその他のリソースがどこで見つけられるかを知っています.
    1.2.1. 登録例外
    
    <exception
    type="org.apache.struts.webapp.example.ExpiredPasswordException"
    key="expired.password"
    path="/changePassword.jsp" />
    

    1.2.2. ActionFormBeanの登録
    <form-bean name="menuForm" type="org.apache.struts.scaffold.MenuForm" />
    <form-bean name="logonForm"
    type="org.apache.struts.action.DynaActionForm">
    <form-property name="username" type="java.lang.String" />
    <form-property name="password" type="java.lang.String" />
    </form-bean>
    

    1.2.3. グローバルActionForwardの登録
    これらのforwardは、アプリケーション内の各アクションに有効です.ローカルActionForwardを要素に配置することもできます.ローカル転送は、ActionMappingに対してのみ有効です.
    <global-forwards>
    <forward name="logoff" path="/Logoff.do" />
    <forward name="logon" path="/Logon.do" />
    </global-forwards>

    1.2.4. ActionMappingの登録
    要素は、要求を処理するために適用されるActionMappingオブジェクトを記述します.
    (org.apache.struts.action.ActionMapping)の集合です.ActionMappingでは、適用するアクション、コマンドについて説明します.
    
    <action-mappings>
    <action path="/logoff"
    type="app.LogoffAction" />
    <action path="/logonSubmit"
    type="app.LogonAction"
    name="logonForm"
    scope="request"
    validate="true"
    input="/pages/Logon.jsp" />
    <action path="/logon"
    type="app.ContinueAction">
    <forward name="continue"
    path="/pages/Logon.jsp" />
    </action>
    <action path="/welcome"
    type="app.ContinueAction">
    <forward name="continue"
    path="/pages/Welcome.jsp" />
    </action>
    </action-mappings>
    

    1.2.5.
    Strutsは、複数のアプリケーションモジュールが単一のコントローラservletを共有することを可能にする.各モジュールは独自のStruts構成を有し、他のモジュールに対して独立して開発することができる.<コントローラ>要素を使用すると、各モードActionServiceletが異なる構成パラメータのセットを識別できます.ほとんどは、デプロイメント記述子の元の設定です.<コントロール>要素設定の属性値は、コントローラ構成bean(org.apache.struts.config.ControllerConfig)に格納されます.各アプリケーションモジュールは、デフォルトのルートモジュールを含むコントローラ構成を作成します.モジュールのstruts-configが要素を提供する場合、モジュールのコントローラ構成beanのプロパティを設定します.
    各モジュールはActionServiceletを共有するため、各モジュールに異なるリクエストプロセッサを挿入することもできます.これにより、各モジュールは、サブクラス化共有servletを用いずに、要求を独自の方法で処理することができる.
    
    <controller
    nocache="true"
    null="true"
    processorClass="com.myCompany.struts.RequestProcessor"/>
    

    1.2.6.
    要素は、アプリケーションで使用するリソースビームを配置するために使用されます.
    
    <message-resources
    parameter="resources.application"/>
    <message-resources
    parameter="resources.image"/>
    

    1.2.7.
    Actionが独自のリソースを初期化および破棄する必要がある場合、PlugInインタフェース(org.apache.struts.action.PlugIn)を実現することができます.このインタフェースはinitとdestroyメソッドを宣言しています.
    コントローラは適切なタイミングで呼び出すことができます.PlugIn Actionは、Struts構成において要素で登録することができる.
    
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
    property="pathname"
    value="/WEB-INF/validator-rules.xml"/>
    <set-property
    property="pathname"
    value="/WEB-INF/validation.xml"/>
    </plug-in>
    

    1.2.8.
    データ・ソースの構成
    
    <data-sources>
    <data-source>
    <set-property property="maxCount" value="4" />
    <set-property property="minCount" value="2" />
    <set-property property="description"
    value="Artimus:MySQL Data Source Configuration" />
    <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" />
    <set-property property="url" value="jdbc:mysql://localhost:3306/artimus" />
    <set-property property="autoCommit" value="true" />
    <set-property property="user" value="root" />
    <set-property property="password" value="" />
    </data-source
    

    1.3. application.properties
    Strutsリソースバンドルを保存します.ファイル自体は通常のテキストファイルで、各行はキーワード-値ペアです.応用の国際化を実現できる.
    
    # -- Custom messages for struts-messages application --
    # -- See http://www.coreservlets.com/Apache-Struts-Tutorial/ --
    form.title=Registration
    form.firstName=First name
    form.lastName=Last name
    form.emailAddress=Email address
    form.buttonLabel=Register Me
    form.successString=Success