form表单无法提交动态生成的元素值的解决办法

在升级Struts2到2.0.30后,系统遇到文件上传失败的问题,原因是动态生成的上传组件导致文件未被提交。通过添加错误处理方法,发现文件为空。最终解决办法是调整表单和动态元素的HTML结构,确保table标签不置于form之外,将form标签放在页面最外层。
摘要由CSDN通过智能技术生成

背景: 因升级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表单放到页面最外层就解决了动态元素无法提交的问题...............

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事不堪回首..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值