[英]How to exclude some properties of ModelDriven Action from being updated in Struts 2
我們正在使用帶有ModelDriven
接口的操作。 該操作具有scopedModelDriven
攔截器,我們將模型保存在會話中。
模型如下:
public class Fundtransfer{
private String amount;
private String sourceAccount;
private String destinationAccount;
private String sign
//setter's and getter's ommited
}
Fundtransfer
bean 用作模型。 JSP 表單有 amount、 sourceAcount
和destinationAcount
字段,它們通過modelDriven
攔截器自動映射到Fundtransfer
bean。 一切正常,直到聽到!
當然,用戶可以簡單地遍歷 HTML 表單並將名為sign
的變量傳遞給操作,攔截器將更新它的 bean。
是否有可能我們可以配置一個模型,而不能通過ModelDriven
攔截器更新符號值。
我知道我可以創建一個新 bean,然后將其復制到Fundtransfer
bean 或使用某種繼承。 有沒有更好的辦法。
我們使用的真正的 bean 是巨大的,還有一些嵌套的 bean。
我想可能是我可以使用一些方面的技巧,但我不知道這可能嗎?
ModelDriven
bean 通常用於通過 getter/setter 進行讀/寫。 您可以在此處控制訪問。 但是,如果您還不知道 Struts2 通過使用 OGNL 填充模型的params
攔截器設置參數。 例如,您可以通過參數excludeParams
控制此攔截器
<interceptor-ref name="params">
<param name="excludeParams">
dojo\..*,^struts\..*,sign
</param>
</interceptor-ref>
另一種方法是使用ParameterNameAware
,您可以在其中實現ParameterNameAware
黑/白名單。 小心這種方法可以通過第一種方法打開限制參數的大門。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.