1:Action无法动态访问
添加struts.enable.DynamicMethodInvocation
添加global-allowed-methods 或者添加 strict-method-invocation=false(在上级配置无效)
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="sysdefault" extends="json-default"> <global-results> <result name="input">/strutserror.jsp</result> </global-results> <!--注意(global-allowed-methods)放置顺序不然启动报错 --> <global-allowed-methods>regex:.*</global-allowed-methods> </package> <package name="frame" extends="sysdefault" namespace="/" strict-method-invocation="false" > <action name="login" class="frLoginAction"></action> </package>
参考 http://blog.csdn.net/maobois/article/details/51854607
参考 https://yq.aliyun.com/ziliao/120250
2:文件上传无法自动转换
Jakarta Multipart 漏洞修补后需要改变识别正则
//Dispatcher 中默认匹配contentType正则 public static final String MULTIPART_FORM_DATA_REGEX = "^multipart/form-data(; boundary=[0-9a-zA-Z'()+_,\\-./:=?]{1,70})?";
<!-- 用的上传文件工具会自动在contentType中添加charset -->
<!-- multipart/form-data; boundary=xxx; charset=xxx 无法匹配默认正则 -->
<!-- Jakarta Multipart 漏洞修补后需要改变识别正则 -->
<constant name="struts.multipart.validationRegex" value="^multipart/form-data(; boundary=[0-9a-zA-Z'()+_,\-./:=?]{1,70})?(; charset=[0-9a-zA-Z\-]{1,10})?"></constant>