gpt4 book ai didi

java - 如何在 Struts 2 中排除 ModelDriven Action 的某些属性更新

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:42 27 4
gpt4 key购买 nike

我们正在使用带有 ModelDriven 接口(interface)的操作。该操作有 scopedModelDriven interceptor我们将模型保存在 session 中。

模型如下:

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、sourceAcountdestinationAcount 字段,这些字段通过 modelDriven 拦截器自动映射到 Fundtransfer bean。一切正常,直到听到!

当然,用户可以简单地修改 HTML 表单并将名为 sign 的变量传递给操作,拦截器将更新它的 bean。

我们是否可以配置一个模型,使符号值无法通过 ModelDriven 拦截器更新。

我知道我可以创建一个新的 bean,然后将其复制到 Fundtransfer bean 或使用某种继承。有没有更好的方法。

我们使用的真实 bean 很大,而且其中一些有嵌套的 bean。

我想也许我可以使用一些方面技巧,但我不知道是否可能?

最佳答案

ModelDriven bean 通常用于通过 getter/setter 进行读/写。您可以在此处控制访问。但是,如果您还不知道 Struts2 通过 params interceptor 设置参数它使用 OGNL 来填充模型。例如,您可以通过参数 excludeParams 来控制此拦截器

<interceptor-ref name="params">
<param name="excludeParams">
dojo\..*,^struts\..*,sign
</param>
</interceptor-ref>

另一种方法是使用ParameterNameAware,您可以在其中实现参数的黑/白列表。小心这种方法可能会打开第一种方法限制参数的大门。

关于java - 如何在 Struts 2 中排除 ModelDriven Action 的某些属性更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19864743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com