Struts 1.2から1.3への移行

ご注意!あくまで私の作っているWebアプリケーションを移行した場合に必要になった作業であり、 他の機能を使っている場合は他の対応が必ず必要になります。 特にキャンセルボタンの動作変更については 総本山のリリースノート に重要な注意が載っています。 このテーマには、 このページ がもっとも頼りになる情報源です。

Strutsのjarの差し替え
WEB-INF/lib/*.jarは差し替える必要があります。 バージョン1.2までstruts.jar1個だったのが、 1.3では複数のstruts-***.jarに分割されているので、必要に応じて入手します。 サンプルアプリケーション(struts-examples.war)を展開して、 WEB-INF/libの下にあるJARファイルを一式持ってくるとよいです。 但し、JSTL(c:if等)の利用に関しては1.0、1.1のどちらのバージョンも使えます。 両者はURIが違うので混在できません。 サンプルアプリケーションに同梱のjstl.jar、standard.jarはJakarta Taglibs 1.0.6 (JSTL 1.0対応)なので、 既に1.1に上げている場合はJarファイルを差し替えずにそのまま使うこと。

struts-1.2.jarをCLASSPATHに通してビルドしたライブラリは1.3で動くか?
一応動くみたいです。

TLDの削除
WEB-INFディレクトリに struts-config_1_2.dtd、tiles_config_1_2.dtd を置いてある場合は不要なので削除します。

DOCTYPE宣言のバージョンアップ
struts-config.xmlは冒頭のDOCTYPE宣言を書き換える必要があります。

<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
        "http://struts.apache.org/dtds/struts-config_1_3.dtd">

validation.xmlのDOCTYPE宣言も、1.1.4以前から1.3.0に書き換えます。

<!DOCTYPE form-validation PUBLIC
         "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
         "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">

但し、DOCTYPE宣言を1.3.0に書き換えると、 arg0〜arg3という旧式扱いのタグは使えないので注意が必要です。例えば、 <arg0 .../>は、 <arg position="0" .../> と書き換えます。

バリデーションの設定変更
WEB-INF/validator-rules.xmlはstruts-action.jarに同梱されるようになったので、 既存のファイルは削除してOKです。 代わりに、struts-config.xmlに次のように書きます。

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
        value="/org/apache/struts/validator/validator-rules.xml,
               /WEB-INF/validation.xml"/>
</plug-in>

Struts TaglibのURI変更
StrutsがJakarta Projectから外れてApacheの最上位プロジェクトになったことから、 JSPの冒頭に書くStrutsの各taglibのURIは
「http://jakarta.apache.org/struts/tags-bean」
などから、
「http://struts.apache.org/tags-bean」
のように変更になりました。
これはweb.xmlのinclude-preludeを使って1個所にまとめ書きしていると移行は楽ですが、 各JSPに書いている場合は相当大変のはず…頑張ってください。

ActionErrorはなくなりました
ActionErrorクラスは完全になくなりました。 1.2でdeprecated(旧式扱い)警告にも耐えて使っていた場合も、 今回はActionMessageに書き換えるしかない。

Server Side Java Index Top

(first uploaded 2006/08/12 last updated 2007/01/06, URANO398)

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル