ページの先頭行へ戻る
Interstage Business Application Server オープンJavaフレームワークユーザーズガイド
FUJITSU Software

2.5 注意事項

■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以降では以下の仕様変更があります。

■Strutsカスタムタグライブラリを使用したJSPの表示について

クライアントが使用するWebブラウザの種類によっては、画面構成が崩れるなどの意図しない動作となる場合があります。

■Strutsカスタムタグライブラリを使用した場合の属性値について

タグの属性にJava変数命名ルールに違反している文字列を指定した場合でも、例外として検出できない場合があります。

■Struts設定ファイルでのワイルドカード“*”の利用について

ワイルドカード機能において、後方一致検索は未サポートとなります。

Actionタグのunknown機能で代替できる場合は、そちらを使用して下さい。

■Strutsアプリケーション作成の注意

Strutsアプリケーションではクラス名、メソッド名、ファイル名などにマルチバイト文字や記号を使用した場合、意図した動作をしない場合があります。

■Strutsプラグイン検証機能の利用について

プラグイン検証機能を使用する場合は、<message-resources>タグも定義する必要があります。

DynaActionForm利用時の注意

DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定しない場合例外が発生します。

DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定してください。

DynaActionFormのプロパティとして配列を指定する場合、"[Ljava.lang.String;"のように記述すると例外が発生します。

DynaActionFormのプロパティとして配列を指定する場合、"java.lang.String[]"のように記述してください。

■文字コードの設定について

web.xmlやJSPファイル、およびtiles-def.xmlなどのXMLファイルで指定した文字コードと実際のファイルの文字コードが異なると例外が発生する場合があります。

■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がコントローラとして動作する場合に限定されます。

上記以外の場合は標準ログが出力されません。