spring-mvc(モデル)について非常に基本的な質問があります。Model(つまりmodel.addAttribute(..)に非常に多くの属性を設定しているプロジェクトに取り組んでいました。私の質問は、非常に多くのaddAttributeを回避するために使用できるデザインパターンはありますか?
Bean /フォームを作成でき、その中にそれぞれのセッター/ゲッターも作成できることは知っていますが、可能な場合は他のオプションを探しています。
提案してください。
spring-mvc(モデル)について非常に基本的な質問があります。Model(つまりmodel.addAttribute(..)に非常に多くの属性を設定しているプロジェクトに取り組んでいました。私の質問は、非常に多くのaddAttributeを回避するために使用できるデザインパターンはありますか?
Bean /フォームを作成でき、その中にそれぞれのセッター/ゲッターも作成できることは知っていますが、可能な場合は他のオプションを探しています。
提案してください。
特別なデザインパターンはありません。特定のコントローラー内でのaddAttribute呼び出しが多すぎないようにするための、Springまたは一般的な手法がいくつかあります。
ビューで常に必要な属性(特定のオブジェクト、リスト、「isXXXActivated」や「showThis」などのブール値など)がある場合は、コントローラーにこの種のメソッドを追加するだけです。
@ModelAttribute("isXXXActivated")
public boolean isXXXActivated(){
return isXXXActivated;
}
これにより、コントローラーが呼び出されるたびにモデルに「isXXXActivated」が追加されます。
すべてのコントローラーに同じ属性を追加する場合は、それらをスーパーコントローラーに追加することを検討できます(スプリング@Controllerは問題なく別の@Controllerを拡張できます)。
最後に、一部の属性がグループに属している場合は、それらをオブジェクトのフィールドとしてグループ化できます。次に、このオブジェクトを属性として追加するだけです。例:表示条件をDisplayクラスにグループ化します。
デザインパターンを使用して問題を解決したい場合は、それらすべてがどのように相互作用するかを実際に調べる必要があります。さまざまなデザインパターンを調べましたか?オブジェクトを分割して一般化できるように、オブジェクトをさらに作成することを検討しましたか。デザインパターンがわかっている場合は、テンプレートメソッドを使用してください。