1
爲了採取哪些行動接受你必須在參數的控制:Struts 2個的可接受參數的名稱
讓你的行動落實ParameterNameAware
像:
public class sample implements ParameterNameAware(){
public boolean acceptableParameterName(String parameterName) {
if (("amount".equals(parameterName) ||
"sourceAccount".equals(parameterName) ||
"destinationAccount".equals(parameterName))
return true;
else
return false;
}
}
這種方法被調用的排斥性param
屬性。
所以,你需要配置params
攔截排除所有參數,所以acceptableParameters
獲得通過params
攔截器被稱爲機會。
<interceptor-ref name="params">
<param name="excludeParams">\w+((\.\w+)|(\[\d+\])|(\(\d+\))|(\['\w+'\])|(\('\w+'\)))*</param>
</interceptor-ref>
我是否正確?這對我來說似乎有點奇怪(不包括全部參數,然後在每個操作中添加它們)。
我也使用ParameterNameAware,但不必配置excludeParams –
我正在使用Struts 2.3.15.3,如果不首先排除它,那麼不會調用acceptableParameter。可能你的版本太舊了。如果是這樣,我建議儘快升級它 –