■タグライブラリが認識されない場合
タグライブラリはWebアプリケーションのWEB-INFディレクトリー配下に格納する必要があります。WebアプリケーションのWEB-INFディレクトリー配下にTLDファイルが存在するか確認してください。
■DynaActionFormのinitial属性に指定した値が正しく反映されない場合
以下の条件を満たす場合、initial属性に指定した値が正しく反映されない場合があります。
DynaActionFormのプロパティとして配列を指定している
initial属性に"\"、"?"、"_"などを含む値を指定している
commons-beanutilsの仕様により、"\"、"?"、"_"などの文字は配列要素の区切り文字として認識されます。
詳細な仕様はcommons-beanutilsのマニュアルで確認してください。
■DynaActionForm利用時に例外が発生する場合
DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定しない場合例外が発生します。
DynaActionFormのプロパティとしてプリミティブ型を指定した場合、initial属性で初期値を設定してください。
■DynaActionFormのプロパティに配列を指定すると例外が発生する場合
DynaActionFormのプロパティとして配列を指定する場合、"[Ljava.lang.String;"のように記述すると例外が発生します。
DynaActionFormのプロパティとして配列を指定する場合、"java.lang.String[]"のように記述してください。
■JSPの表示が文字化けする
JSPファイルで指定した文字コードと実際のファイルの文字コードが異なると文字化けが発生する場合があります。
ファイルの文字コードを確認してください。
■不完全なレスポンスデータが返される場合がある
レスポンス生成処理中に異常が発生した場合、正しいレスポンスが返却されない場合があります。
この場合、Webアプリケーションの設定や配備資材の内容に問題がある可能性があります。
サーバーログを参照し、問題を取り除いてください。
■Tiles機能を使用したWebアプリケーションで、NullPointerExceptionが発生する
以下の条件に該当する場合、TilesRequestProcessorがTiles定義情報を参照できないため、NullPointerExceptionが発生する場合があります。
Tiles機能を使用(Struts設定ファイルのcontrollerタグで、TilesRequestProcessorを指定している)しており、Struts設定ファイルのPlug-Inタグで、Tiles設定ファイルを指定していない
Tiles機能を使用する場合は、Tiles設定ファイルも必ず指定する必要があります。
■Tiles機能を使用したJSPにアクセスした場合、例外が返却される
以下の条件に該当する場合、Tiles機能を使用したJSPにアクセスした場合に例外が返却される場合があります。
JSPファイルでtiles:insertタグが入れ子になって記述されている
tiles:insertタグを入れ子にして記述しないでください。
■Tilesのdefinitionタグで設定したbeanが消えてしまう
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.
■Tilesを使用する場合、拡張したRequestProcessorが使用できない
アプリケーションで使用するRequestProcessorを拡張したクラスに差し替える場合、同一Struts設定ファイル内では他のRequestProcessorを使用する事ができなくなります。
そのため、Tiles機能と拡張したRequestProcessorを同時に使用したい場合は、TilesRequestProcessorをベースに拡張するなどの工夫が必要となります。
■レスポンスが返らない場合がある
以下の条件に該当する場合、Webアプリケーションからのレスポンスが返されない場合があります。
JSPファイルにbean:includeタグでhref属性に空文字を指定している
href属性に空文字を指定しないでください。
■キャンセル処理が動作しない
Struts-1.2.8までは、Formのキャンセルボタンが押下された場合、検証処理が実行されずにユーザーの業務ロジックが呼び出されてしまうセキュリティホールが存在しました。
そのため、Struts 1.2.9以降ではStruts設定ファイルで明示的に許可しない限り、デフォルトではキャンセル処理を受け付けない仕様に変更されました。(受け付けた場合はInvalidCancelExceptionがスローされる)
ただし、キャンセル処理を許可した場合の動作は以前と何ら変化していないため、業務アプリケーション側でキャンセル処理を意識した実装が必要となります。
■バリデーションが動作しない
プラグイン検証機能を使用する場合は、<message-resources>タグも定義する必要があります。
■画面表示が崩れる場合がある
Strutsカスタムタグライブラリを使用したJSPの表示は、クライアントが使用するWebブラウザの種類によっては、画面構成が崩れるなどの意図しない動作となる場合があります。
■Strutsカスタムタグライブラリの属性値が正しく設定されない
タグの属性にJava変数命名ルールに違反している文字列を指定した場合でも、例外として検出できない場合があります。
■Struts設定ファイルで設定したワイルドカード“*”が期待通り動作しない
ワイルドカード機能で後方一致検索は未サポートとなります。
Actionタグのunknown機能で代替できる場合は、そちらを使用して下さい。
■アプリケーションが意図した動作をしない
Strutsアプリケーションではクラス名、メソッド名、ファイル名などにマルチバイト文字や記号を使用した場合、意図した動作をしない場合があります。アプリケーション内にマルチバイト文字のクラス名、メソッド名、ファイル名が存在しないか確認してください。