在struts2中,我利用了struts2中的内置OGNL,命名我的输入,比如<input name='bag["item"].property'>
哪个去了getters/setter getBag().get("item").setProperty(value)
我已经升级到struts 2.2.1,突然那些不再工作:getter永远不会被调用.
互联网完全没有在参数中使用OGNL ,好像没有人制作过复杂的表格.
如何获取我的地图参数?
事实证明,他们加强了对参数名称的限制以提高安全性。
所以我必须添加到我的 struts.xml 中:
<interceptor-stack name="defaultStack">
<interceptor-ref name="params">
<!-- For maps to work -->
<param name="acceptParamNames">
[a-zA-Z0-9\.\]\[\(\)_'\s"/]+
</param>
</interceptor-ref>
</interceptor-stack>
Run Code Online (Sandbox Code Playgroud)
(我的参数名称中有“s”和“/s”)此后文件上传停止工作(拦截器堆栈太疯狂了),所以我也必须明确添加它。
更新:这些天我强烈建议使用 JSON 来传递复杂的结构,而不是丰富的 OGNL 表单。当然你需要一些JS。
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |