Javaちょこっとリファレンス ブログ

Java開発時にぜひご利用ください。

ツール

[Struts] Strutsトラブルシューティング

投稿日:2019年6月29日 更新日:

Strutsを使用した開発でハマった事例と解決方法のメモです。

Strutsトラブル事例

・ブラウザの画面が真っ白になる

struts-config.xmlのaction指定内のforward先の文字列が間違っている。
若しくは、Actionが返すforward先の文字列がstruts-config.xml内に定義していない。

・struts-config.xmlのglobal-exceptionsに指定したエラー画面に遷移しなくなる

global-exceptions内で指定しているパラメータが間違っている
(メッセージのキーを変更したなど)

・表示した画面が途中までしか表示されない

表示が切れている付近のjspコードに誤りがある。
(ロジックの間違い、指定したメッセージキーが定義されていない等)

こうなった場合は画面上で右クリック→ソースの表示をしてソースが切れている箇所を確認してその付近のjspソースに誤りがないかを確認する。

・BeanUtilPopulateが発生する

List表示する時に用意しておかなければならない引数にリスト番号を渡してList内のデータオブジェクトを返すFormメソッドを作成していない。

・Action内でFormにセットした値がJSP側で表示されない

struts-config.xml内でscopeが適切に設定されていない。

・JSPの変更が反映されない

Tomcatが停止している時にJSPを修正しても、修正されたことがTomcatに伝わらないためJSPのリコンパイルが走らないため。
Tomcatが起動されている状態でJSPファイルの更新日付が更新されるような修正(再保存)等をすればリコンパイルが走る。

・java.lang.IllegalArgumentException: Resources cannot be null.が発生する

struts-config.xmlのactionタグ内のパラメータにvalidate="false"を指定していないかつ、 対象のactionタグに対応するFormクラスのバリデータ定義をvalidate.xmlに定義していない場合に発生します。
(struts標準のvalidate機能を使用しない場合は、必ず「validate="false"」をactionタグに定義しておく必要があります)

・strutsタグ内に「<%=xxxx >」という記述を書いても、値に置き換わってくれない

例えば、onclick="doSubmit('<%=xxxx >')" という風にonclickが発生した時、引数の値を動的に変えつつdoSubmitファンクションを呼び出す という場合は、このような書き方ですとNGです。
この場合は、onclick="<%= "doSubmit('" + xxx + "')" %>" という風に書かないとうまく解釈してくれません。

備考

  • 原因や解決方法は一例です。

スポンサーリンク

スポンサーリンク

-ツール

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

[Struts] JSP上でStrutsエラーメッセージが設定されているかを判断する

JSP上でStrutsエラーメッセージが設定されているかを判断する方法です。 サンプルソース 例)J ...

[Servlet] GET、POST区別なく処理する

ServletでGET送信、POST送信に係らず同じ処理を行いたい場合のサンプルです。 実装方法とし ...

[Servlet] パラメータ値を取得する

Formで送信された値をServlet側で取得するには、getParameterメソッドを使用します ...

[Servlet] 配列値を取得する

Servlet側でチェックボックスなど配列値を取得するには、getParameterValuesメソ ...

[Lombok] Lombokをインストールする

Lombokをインストールする方法です。 手順 ①以下サイトからLombokをダウンロードして任意の ...