我想知道在Struts2 中是否有可能将HTML表单的字段映射到操作的字段,自动地,没有getter和setter 。
很明显,通过getter和setter或ParameterAware interface and the Map
,可以在动作中设置字段,但我只是想知道是否有办法。
答案 0 :(得分:2)
首先,不要考虑“ with getters and setters ”字段,建议您在这里考虑“ bean属性”。 Struts2(以及大多数java框架)以这种方式思考,他们通常不关心(并且正确地说)这些“属性”是否是真实字段。
您问题的简短回答是:否。
但请注意,Struts2非常灵活 - 当我说“不”时,我的意思是“使用默认拦截器”。你总是可以编写自己的拦截器而不是默认的拦截器 - 不好的想法IMO。
执行该映射的拦截器(基本上)是参数拦截器。 From its documentation:
此拦截器获取所有参数 来自
ActionContext#getParameters()
和 将它们设置在值堆栈上 致电ValueStack#setValue(String, Object)
通常导致价值 以表格请求提交 应用于值中的操作 叠加。
调查ValueStack.setValue(String,Object)我们读到了:
尝试在a上设置属性 具有给定的堆栈中的bean 表达式使用默认搜索 顺序。
所以你有。
答案 1 :(得分:1)
ModelDriven是正确的选择:)