2011-11-28 52 views
0

我使用struts2並希望在struts標籤中使用Math.max方法。 像這樣:帶數學函數的Struts2標籤

<s:property value="%{Math.max(1 , 5) }" /> 

或者:

<s:set var="pfrom" value="%{Math.max(1 , page - 5)}" /> 

但這碼不起作用。

回答

1

請參閱文檔accessing static properties

果殼:%{@[email protected](...)}

你需要配置允許在Struts配置文件中靜態訪問:

<constant name="struts.ognl.allowStaticMethodAccess" value="true" /> 

我也希望你做這樣的工作在行動,不過,當可能。 「啞」視圖更容易測試 - 控制器中的邏輯越多,事情越容易。

相同的邏輯可能會暴露爲一個操作方法。

1

標籤始終用於表示層。將它們用於任何類型的數學或商業邏輯都會破壞它們的目的。

把事情搞混,意味着你沒有按照應該使用的方式使用分層結構。

如Dave所建議的,在動作或實用類中執行這樣的操作會更好。也就是說,你可以按照文章中的建議閱讀文檔。