在 struts2 中,我利用了 struts2 中内置的 OGNL,将我的输入命名为 <input name='bag["item"].property'>
哪个去了 getters/setters getBag().get("item").setProperty(value)
我已经升级到 struts 2.2.1,突然间那些不再起作用:getter 永远不会被调用。
互联网对在参数中使用 OGNL 完全保持沉默,好像从来没有人制作过复杂的表格。
如何取回我的 map 参数?
最佳答案
事实证明,他们加强了对参数名称的限制以提高安全性。
所以我必须添加到我的 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>
(我的参数名称中有 "s 和/s) 文件上传在那之后停止工作(拦截器堆栈很疯狂),所以我也必须明确地添加它。
更新:最近我强烈建议使用 JSON 来传递复杂的结构,而不是丰富的 OGNL 形式。当然你需要一些 JS。
关于java - struts2不再接受http map参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132573/