1

プレゼンテーション レイヤーに Spring MVC を使用しており、サービス レイヤーと DAO レイヤーにも Spring を使用しています。通常、MVC (私の場合は JSP) のビュー レイヤーでデータをフォーマットしますが、データベースから取得したデータが標準化されたフォーマットでない場合はどうなるでしょうか。

たとえば、会社のデータベースの 1 つから電話番号を取得していますが、(111)-555-1234 や 1115551234 などの任意の形式になっている可能性があります。 JSP/ビュー レイヤー。すべての数値を同じ形式で別の場所に配置してから、ビューで再フォーマットすることをお勧めします。この状況ではどこをフォーマットする必要がありますか? サービス層? ダオ?

これにより、JSP から呼び出すことができない (または JSP から呼び出しても意味がない) ライブラリを利用することもできます。

ありがとう!

4

2 に答える 2

2

DAO クエリ メソッドで電話番号から書式設定文字を削除し、プレゼンテーション レイヤーで一貫した形式 (おそらく JSP タグで) を指定します。私はビジネス ロジックを DAO に入れるのが好きではありませんが、これは非常にデータに関連しているようです。

(実際には、書式設定コードが独自の書式設定を行う前に既存の書式設定を最初に削除する場合、他の場所で書式設定文字を削除せずに済む場合があります。私は物事を標準的な形式にするのが好きです。)

format-char-removal を DAO に配置する代わりに、Hibernate を使用している場合は、電話番号属性から書式設定文字を削除または挿入するカスタム ユーザー タイプを作成できます。

于 2013-04-05T20:36:26.983 に答える
0

私は通常、モデルを値オブジェクト(VOまたはそれらを呼びたいもの)にマップするときに、ほとんどがプレゼンテーションレイヤーでフォーマットを行います(または、プレゼンテーションレイヤーとサービスレイヤーの間にレイヤーを配置します。行う)。これにより、必要に応じて、アプリケーション全体でフォーマットに一貫性がもたらされます。

名前をキャメルケースにしたいときは、これを行います

BeanUtils.copyProperties(userAccount, userAccountVO, ignoreProperties);
userAccountVO.setName(StringUtilities.convertToCamelCase(userAccountVO.getName()));
于 2013-04-06T02:30:07.317 に答える