2

ネイティブ MVC Web プロジェクト (Hibernate または Spring を使用できない) で、Bean の変数の値をプレゼンテーションに適した形式に変更するための「変換テーブル」を提供する最良の方法は何ですか? 変数ごとにカスタムの「Web Getter メソッド」を提供するのは、OO の実践としては不適切なようです。

例: statusという名前の変数には、永続層で値「A」、「I」、「D」、または「U」を設定できるため、Bean ではそのように格納されます。しかし、ページ上では、これら 4 つの値はそれぞれ「アクティブ」、「非アクティブ」、「削除済み」、「未定義」に変換されます。この翻訳の知識をどこに、どのように格納しますか?

(また、Java webdev コミュニティは、この種の「翻訳テーブル」に特定の名前を付けていますか? ここで既に回答された解決策を検索するとき、私は語彙不足のようなものでした.)

4

2 に答える 2

2

そのために、通常、標準のJSTL タグを使用してアクセスできるリソース バンドルが使用されます。または、JSTL タグが内部で使用しているAPI<fmt:xxx>を使用してプログラムでアクセスすることもできます。ResourceBundle

例:パッケージstatus.properties内のファイルcom.example.i18n

status.A = Active
status.I = Inactive
status.D = Deleted
status.U = Undefined

with (このプロパティを持つ Bean がある場合${bean})

<fmt:bundle basename="com.example.i18n.status">
    Status: <fmt:message key="status.${bean.status}" />
</fmt:bundle>

また

<fmt:bundle basename="com.example.i18n.status" prefix="status.">
    Status: <fmt:message key="${bean.status}" />
</fmt:bundle>

以下も参照してください。

于 2013-01-11T17:20:27.043 に答える
0

これを行う一般的な方法の 1 つは、プレゼンテーション レベル Bean とドメイン データ Bean を使用することです。プレゼンテーション Bean にコードを挿入して、ドメイン Bean (既にあるもの) から表示可能な値に値をコピーします。同様に、フォームが送信されたときに元に戻すコードをプレゼンテーション Bean に含めることもできます。(そのデータ コンポーネントを Web サイトで作成する方法があると仮定します。

変換コードが複雑になったり、アプリケーション全体のさまざまなデータ オブジェクトの変換にかなりの共通点がある場合は、特定のタイプのデータを変換するジョブを持つ一連のクラスへの変換を抽出するか、または次のことができます。一般的な変換を行うメソッドを持ついくつかのユーティリティ クラスがあり、変換コードを小さくコンパクトにするためにプレゼンテーション Bean によって使用されます。

于 2013-01-11T17:04:28.433 に答える