【发布时间】:2016-03-26 13:48:10
【问题描述】:
我正在使用 Struts2.3.28。当我提交使用 submit tag 和 method 属性的表单时,我收到了以下警告:
WARN com.opensymphony.xwork2.interceptor.ParametersInterceptor
warn- Parameter [method:save] didn't match accepted
pattern [[\w+((\.\w+)|(\[\d+\])|(\(\d+\))|
(\['(\w|[\u4e00-\u9fa5])+'\])|(\('(\w|[\u4e00-\u9fa5])+'\)))*]]!
我将struts.enable.DynamicMethodInvocation 设置为true。
我认为 Parameters Interceptor 的 acceptParamNames 属性(似乎是一个白名单)是在最近的一些版本中添加的......文档只说(基本上)
“不要碰这个” .
太棒了!那么,如果我还想使用submit标签的method属性该怎么办呢?
进一步:我不清楚这个警告的含义。如果模式既不匹配白名单acceptParamNames 也不匹配黑名单excludeParams(啊,一致性),应该发生什么?
【问题讨论】:
-
你确定你使用的是 2.3.28 吗?您是否修改了接受或排除的模式?无法在我的项目中重现您的问题。
-
也许你需要设置 devmode ? struts.apache.org/docs/devmode.html
-
Default exclude pattern 不包括
method:和isExcludedcomes beforeisAccepted。您是否修改了排除模式? -
@AleksandrM 是的,我已经取消了这个限制。
-
这回答了为什么您会看到确切的消息。但是 DMI 应该仍然可以工作,对吧?如果不是,那么很难说出为什么没有其他信息。
标签: regex parameters configuration struts2 struts2-interceptors