■RequestProcessorの拡張を行う場合
アプリケーションで使用するRequestProcessorを拡張したクラスに差し替える場合、同一Struts設定ファイル内では他のRequestProcessorを使用する事ができなくなります。
そのため、Tiles機能と拡張したRequestProcessorを同時に使用したい場合は、TilesRequestProcessorをベースに拡張を行うなどの工夫が必要となります。
■キャンセル処理のセキュリティホール
Struts-1.2.8までは、Formのキャンセルボタンが押下された場合、検証処理が実行されずにユーザの業務ロジックが呼び出されてしまうセキュリティホールが存在しました。
そのため、Struts 1.2.9ではStruts設定ファイルで明示的に許可しない限り、デフォルトではキャンセル処理を受け付けない仕様に変更されました。(受け付けた場合はInvalidCancelExceptionがスローされる)
ただし、キャンセル処理を許可した場合の動作は以前と何ら変化していないため、業務アプリケーション側でキャンセル処理を意識した実装が必要となります。
■Multi Page Forms機能のセキュリティホール
本製品のV11.1.1までで提供されていたStrutsにおいて、検証処理が実行されずにユーザの業務ロジックが呼び出されてしまうセキュリティホールが存在しました。
そのため、V11.2以降では以下の仕様変更があります。
Multi Page Forms機能を利用する場合、Struts定義ファイル(struts-config.xml)の<action>タグに設定項目acceptPage属性を追加する必要があります。validation.xmlで定義したフォームと、そのフォームを受け付けるアクションクラスにおいて、ページ番号が同一になるように定義してください。(actionPage属性を設定しない場合はすべての検証定義が有効になる)
例
validation.xml
・・・ <form-validation> <formset> <form name="MpvActionForm"> <field property="firstname" depends="required" page="1"/> <field property="lastname" depends="required" page="2"/> </form> </formset> </form-validation> ・・・ |
struts-config.xml
・・・ <action path="/page1" type="Page1Action" name="MpvActionForm" input="/firstname.jsp" acceptPage="1"> <forward name="lastname" path="/lastname.jsp"></forward> </action> <action path="/page2" type="Page2Action" name="MpvActionForm" input="/lastname.jsp" acceptPage="2"> <forward name="output" path="/output.jsp"></forward> </action> ・・・ |
■Strutsカスタムタグライブラリを使用したJSPの表示について
クライアントが使用するWebブラウザの種類によっては、画面構成が崩れるなどの意図しない動作となる場合があります。
■Strutsカスタムタグライブラリを使用した場合の属性値について
タグの属性にJava変数命名ルールに違反している文字列を指定した場合でも、例外として検出できない場合があります。
■Struts設定ファイルでのワイルドカード“*”の利用について
ワイルドカード機能において、後方一致検索は未サポートとなります。
Actionタグのunknown機能で代替できる場合は、そちらを使用して下さい。
■Strutsアプリケーション作成時の注意
Strutsアプリケーションではクラス名、メソッド名、ファイル名などにマルチバイト文字や記号を使用した場合、意図した動作をしない場合があります。
■Strutsプラグイン検証機能の利用について
プラグイン検証機能を使用する場合は、<message-resources>タグも定義する必要があります。
■DynaActionForm利用時の注意
DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定しない場合例外が発生します。
DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定してください。
■Strutsマニュアルの誤記について
Struts Users Guide[Tiles Tag Library]のdefinitionタグのscope属性の説明に誤りがあります。
誤:Specifies the variable scope into which the newly defined bean will be created. If not specified, the bean will be created in page scope.
正:Specifies the variable scope into which the newly defined bean will be created. If not specified, the bean will be created in request scope.
■標準ログについて
Strutsが出力する標準ログはActionServletがコントローラとして動作する場合に限定されます。
上記以外の場合は標準ログが出力されません。