2012-08-25 85 views
1

我對spring-mvc(Model)有一個非常基本的問題。我正在開發一個項目,在這個項目中我們在模型中設置了很多附加屬性(即model.addAttribute(..)。我的問題是,是否有任何設計模式可以用來避免這麼多的addAttributes?Spring MVC:模型中屬性太多

我知道我可以創建一個bean /形式和裏面我還可以創建相應的制定者/吸氣,但我只是尋找如果有任何其他選項。

請建議。

回答

1

沒有特殊的設計模式,只是一些Spring或一般的技術,以避免給定的控制器內的過多的addAttribute調用。

如果您在視圖中始終需要一些屬性(如特定的對象,列表,諸如「isXXXActivated」或「showThis」等的布爾值),則可以在您的視圖中添加排序方法控制器:

@ModelAttribute("isXXXActivated") 
public boolean isXXXActivated(){ 
    return isXXXActivated; 
} 

這會在每次調用控制器時在模型中添加「isXXXActivated」。

如果您在所有控制器中添加相同的屬性,可以考慮將它們添加到超級控制器中(Spring @Controller可以擴展另一個@Controller而不會出現問題)。

最後,如果某些屬性屬於一個組,則可以將它們分組爲對象的字段。然後,您只需將該對象添加爲屬性即可。示例:將顯示條件分組到Display類中。

+0

謝謝!所以我們在對象中添加值的設計然後將它們添加到模型中是正確的。假設所有使用spring-mvc的應用程序都會發生同樣的情況。 –

0

如果你想使用設計模式來解決一個問題,你真的需要看看它們是如何相互作用的,你是否研究過不同的設計模式?你是否考慮過製作更多的對象,以便將它們拆分並進行概括,如果你使用模板方法現在設計模式。

+0

感謝您的回覆。我們考慮創建更多的對象,並創建將模型中的全部或部分/許多對象添加爲屬性的問題。你能否詳細說明一下? –