在 Struts2 中,在操作中使用域驱动非常方便,但是,当数据自动传输到对象上时就会出现问题。正如我们所看到的,如果请求具有与域对象上的属性匹配的参数,则数据将被移动到这些属性上。现在,考虑一下这样的情况:您的域对象具有一些您并不真正希望暴露给此自动数据传输的敏感数据属性(可能是 ID),我们如何排除它们?在asp.net mvc中,我们可以使用排除注释来轻松做到这一点:Bind(Exclude="empId")]
,我们是否有类似的方法来做到这一点?
最佳答案
您可以使用 params
来执行此操作拦截器。拦截器是defaultStack的一部分,您可以在外层包中配置它或单独将其应用到操作上。它具有属性 excludeParams
,您可以使用此参数来配置需要从总体中排除的属性。伴随或在 ParameterNameAware
的支持下您可以将用于定义接受的参数列表和黑名单的逻辑分开。关于 ParameterNameAware 的一点需要注意的是,它能够显示被拦截器排除的参数。
关于java - Struts2中使用域对象进行数据传输时如何排除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514605/