0

struts 2のWebページと多数の例をたどった後でも、私のアプリケーションはstruts.propertiesファイルから値を取得しません。

いくつかの値にマネータイプの形式を与えるために、これを試しています。

<s:property value="getText('struts.money.format',{value})" />

WEB-INF / classesの下にあるため、表示されるstruts.propertiesファイルには、次の1行があります。

struts.money.format= {0,number,\u00A4##0.00}

文字列struts.money.formatが画面に印刷されます。getText呼び出しの最初のパラメーターを変更すると、実際のルックアップが発生する代わりに、入力した新しい文字列も出力されます。

私がそうするならば、私は<s:property value="value" />適切な数を取り戻すでしょう。getText呼び出しで2番目の引数を削除すると、プロパティファイルの割り当ての右側が返されると思いますが、同じようstruts.money.formatに返されます。

私はStruts2.2.1.1でTomcat6を使用しています。私がおそらく省略しているパズルの追加部分はありますか?

4

1 に答える 1

2

したがって、struts.xmlファイルにこの行を入れます

    <constant name="struts.custom.i18n.resources" value="struts" />

struts.propertiesファイルを使用しようとしていることを知るためにこれが必要です。デフォルトでは、struts.propertiesという名前のファイルが、このような定数を探す場所のチェーンに沿っていると想定していました。他の名前を付けた場合にのみ、それを指定する必要がありました。Struts2のドキュメントで推奨されているWEB-INF/classesにありますが、単にこのファイルを検索していませんでした。

編集

その価値のために、私もストラットのテキストタグをそのように変更する必要がありました

<s:property value="getText('struts.money.format',{@java.lang.Double@valueOf(value)})" />

実際にvalueは、BigDecimalである必要がありましたが、ここではビューレベルでjava.lang.Stringとして扱われていました。問題は、一部のStringオブジェクトに指数形式(1.642E07など)があり、strutsフォーマッターが指数形式を処理できなかったことです。valueOfは、この指数関数的な形式化を排除します

于 2012-04-25T18:35:22.617 に答える