2013-05-02 37 views
1

情況:我正在從使用Struts 1轉向Struts 2.在Struts 1中,表單類需要遵循JavaBean規範。由於我的業務數據對象都是不可變的,因此需要創建許多類的JavaBean版本,並在兩者之間映射方法。是否有可能在Struts2中使用不可變類?

Struts2是否支持對錶單使用不可變對象?

如果是這樣,我該如何配置它,以便使用表單字段從其構建器實例化不可變對象?

+0

您需要調用Struts2支持並詢問他們是否支持表單的不可變對象。您可以配置動作,結果,攔截器等,您希望使用哪些表單域以及您嘗試了什麼? – 2013-05-02 17:05:59

+0

我不明白關閉或投票。 FWIW,我是一名提交者。 – 2013-05-02 18:29:54

回答

2

從請求中填充的對象不能是不可變的,因爲OGNL調用它的設置器–,這就是OGNL(和大多數EL)的工作方式。

我想你有兩個選擇:你可以用一個自定義參數攔截器來做某件事,或者創建一個構造函數或構建器來獲取用於該表單的bean。

沒有任何真正的想法,我可能會做後者,雖然我可能創建一個快速工具來生成表單類,如果有很多。攔截器會更優雅,但它可能需要使用反射。

+0

謝謝,戴夫。我會和建築師一起去接受一個表單類的實例,因爲當它可以被避免時,我不是一個反射的狂熱粉絲。 – Matt 2013-05-02 18:38:23

相關問題