关于Struts中ActionForm取不到值的问题解答

    今天的开发过程中发生了一件非常狗血的事情:我在Action中想取得从前端Form中传回来的值,可是怎么都取不到。首先检查了Struts的配置文件--无误,之后又检查了AJAX提交的表单名是否和前端Struts标签<html:form>中的styleId一致。检查都没有问题后,开始查看实体类中的set和get方法。不管怎样都是取不到值,而这些容易出错的地方都没有错误。

    晚上回家之后,沏上一杯茶,慢慢的看着代码,忽然发现我的<html:form>的标签写在可一个<div>的外面,可是他们的对应关系和包含关系都没有错,我尝试这将<div>括在<html:form>的外面,Debug form里面有值了。。。

    仔细分析一下:我在前端的div中设置ID,前端使用Ext建立一个window,里面放上一个Panel,Panel的contentEl是div的ID值,我最开始的时候是吧<html:form>放到了div的外面,相当于我的<html:form>括在了整个Ext组件的外面,这样的提交,不论是AJAX提交还是表单的提交,都是取不到我们在<html:text>等标签里面的值的。

    抛开Struts,只讨论Ext的表单提交(无所谓Ajax还是submit),它是通过form来对数据进行提交的。而通常我们总是写一个formPanel,之后在里面写上items,定义一些输入框等等。之后直接取到form然后submit。之所以我出错的原因就是因为我把<html:form>放在了整个Ext组件的外面(应该是只放在我们需输入域上,通过button来触发submit)相当于提交的是panel再外一层的组件,所以才导致可以提交到Action中,form却不能取到值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值