代码之家  ›  专栏  ›  技术社区  ›  alamar

struts2不再接受http映射参数?

  •  5
  • alamar  · 技术社区  · 14 年前

    <input name='bag["item"].property'> 它被送到getters/setters getBag().get("item").setProperty(value) 我已经升级到了Struts2.2.1,但突然之间这些功能就不再工作了:getter永远不会被调用。

    互联网对使用OGNL是完全沉默的

    如何获取地图参数?

    1 回复  |  直到 14 年前
        1
  •  3
  •   alamar    9 年前

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

           <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。