struts2不再接受http地图参数?

发布于 2024-10-01 07:19:02 字数 292 浏览 7 评论 0原文

在struts2中,我利用了struts2中内置的OGNL,将我的输入命名为 其中转到 getters/setters getBag().get("item").setProperty(value) 我已经升级到 struts 2.2.1,突然这些不再工作: getter 永远不会被调用。

互联网对在参数中使用 OGNL 完全保持沉默,就好像没有人制作过复杂的表单一样。

如何取回我的地图参数?

In struts2, I took advantage of built-in OGNL in struts2, naming my inputs like <input name='bag["item"].property'>
Which went to getters/setters getBag().get("item").setProperty(value)
I've upgraded to struts 2.2.1, and suddently those no longer work: the getter never gets called.

The internet is utterly silent on using OGNL in parameters, as if nobody ever made complex forms.

How do I get my map-parameters back?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紅太極 2024-10-08 07:19:02

事实证明,他们加强了对参数名称的限制以提高安全性。

所以我必须添加到我的 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。

It turns out that they hardened restrictions on parameter names to boost security.

So I had to add to my 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>

(I had "s and /s in my parameter names)
File upload ceased working after that (interceptor stacks are madness), so I had to add it explicity either.

Update: These days I strongly suggest using JSON to pass complex structures instead of rich OGNL forms. Of course you would need some JS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文