Struts2の利用(1)

Struts2.1.6

Struts2で最低限使用するjarは

  • commons-logging-1.0.4.jar
  • freemarker-2.3.13.jar
  • ognl-2.6.11.jar
  • struts2-core-2.1.6.jar
  • xwork-2.1.2.jar
  • commons-fileupload-1.2.1.jar

あとは


Struts2ではStruts1での設定ファイル(struts-config.xml)を記載しないZero Configuration(ゼロコンフィグレーション)が可能です。

とりあえず設定ファイルを記載する方法でも可能なのでStruts1からの移行も簡単な方

設定ファイル
struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <!-- プロパティファイル名 -->
    <constant name="struts.custom.i18n.resources" value="MessageResources"/>
    <!-- デフォルトロケール -->
    <constant name="struts.local" value="ja"/>
    <!-- ファイルアップロード時のディレクトリ
    <constant name="struts.multipart.saveDir" value="C:\"/> -->
    <!-- ファイルアップロード時の最大ファイルサイズ
    <constant name="struts.multipart.maxSize" value="2097152"/> -->
    <!-- 拡張子 -->
    <constant name="struts.action.extension" value="html"/>
    <!-- URLでのメソッド指定
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/> -->
    <!-- デバックモード有無
    <constant name="struts.devMode" value="true"/> -->
    <!-- HTTPポート
    <constant name="struts.url.http.port" value="80"/> -->
    <!-- HTTPSポート
    <constant name="struts.url.https.port" value="443"/> -->
    <!-- UIタグのテーマ
    <constant name="struts.ui.theme" value="xhtml"/> -->
    <!-- UIタグのテンプレートディレクトリ
    <constant name="struts.ui.templateDir" value="template"/> -->

    <!-- パッケージ -->
    <package name="Sample1" namespace="/" extends="struts-default">
        <!-- インターセプター -->
        <interceptors>
            <!-- 独自インターセプター -->
            <interceptor name="accessLog" class="org.struts2.interceptor.AccessLogIntegerceptor"/>
            <interceptor name="sqlmapp"   class="org.struts2.interceptor.SqlMapInterceptor"/>

            <!-- インターセプタースタック -->
            <interceptor-stack name="interceptorStack">
                <interceptor-ref name="accessLog"/>
                <interceptor-ref name="sqlmap"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>

        <!-- インターセプタースタック設定 -->
        <default-interceptor-ref name="interceptorStack"/>

        <global-results>
            <result name="index">/</result>
        </global-results>

        <action name="Top" class="example.TopAction">
            <result name="success">WEB-INF/classes/example/Top.jsp</result>
            <result name="error">WEB-INF/classes/example/Top.jsp</result>
        </action>

    </package>

</struts>

Struts2からはstruts.xmlに変更なりました。

interceptorタグでインターセプターの指定をして
interceptor-stackタグのinterceptor-refタグでスタックに入れます。

interceptor-refにあるdefaultStackはstruts-core.jarでstruts-default.xmlで指定されています。


あとは記述方法が変わっている部分もあるけど基本はStruts1のstruts-config.xmlと同じです。