背景: 因升级struts2.0至2.0.30之后系统无法上传文件,每次form表单提交action时文件就不存在了,因为form提交到action时没有任何报错信息,struts这点是真的恶心人,
后来
1. 各种测试把spring2升级到5,还把配置文件中的bean全换成了自动注入的注解模式,hibernate也从3升级到了5,最后还是网上找到在action中添加以下3个方法错误信息才输出:
public void addActionError(String anErrorMessage){
System.out.println(anErrorMessage);
}
public void addActionMessage(String aMessage){
System.out.println(aMessage);
}
public void addFieldError(String fieldName, String errorMessage){
System.out.println(fieldName+"---"+errorMessage); // 如果属性有问题,会打印
}
2. 输出的内容显示我文件为空,然后发现我的上传文件是动态生成的,可以动态生成多个上传组件进行上传多个,也就是动态生成导致没有文件提交到后台,期间以为我使用的是struts的<s:form标签的问题一顿测试,后来才发现原来是标签顺序问题,form表单不允许穿插其他标签把顺序搞乱了,table标签不能在form表单的外面,把form表单放到页面最外层就解决了动态元素无法提交的问题...............