Search on the blog

2013年1月25日金曜日

Learn Struts(4)

昨日の続き。とりあえずDispatchActionを継承したアクションを使って簡単なwebアプリを書いてみた。

https://github.com/Kenji-H/calculator/tree/v1.0

微妙にはまったのが、int型プロパティの<bean:write>。なぜかエラーになる。Integer型にすればうまくいくと思ったけどうまくいかない。

「キー org.apache.struts.action.MESSAGE に対するメッセージリソースが見つかりません」という謎のメッセージが出てエラーページに遷移してしまう。
公式リファレンス(http://struts.apache.org/1.3.10/struts-taglib/tagreference.html#bean:write)にはtoString()した値が出力されるって書いてるけど何故かエラー。

とりあえず、taglibのソースを読んでみる。
org.apache.struts.taglib.bean.WriteTag#formatValueの
formatString = retrieveFormatString(INT_FORMAT_KEY);

で落ちてる。リソースファイルからデフォルトメッセージ取ろうとするときに落ちるみたい。formatStringが設定されていればリソースファイルを読みに行かないようになっていたので、以下のように<bean:write>タグ内でformat属性を設定した。
動いた!

<body>
Ans=<bean:write name="numberForm" property="ans" format="######"/>
</body>

プロパティファイルに定義する方法の方がスマートなので、次回やってみよう。

0 件のコメント:

コメントを投稿