关于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却不能取到值。

推荐文章

php和$\u GET数组

php和$\u GET数组

推荐文章

自定义列表:如何检索最近提交的3个项目

自定义列表:如何检索最近提交的3个项目

推荐文章

用条令2设定限制?

用条令2设定限制?

推荐文章

SQL Server案例语句

SQL Server案例语句

推荐文章

ActionController混音

ActionController混音

推荐文章

为什么这个CGRectContainsPoint失败?

为什么这个CGRectContainsPoint失败?

推荐文章

ASP.NET:DataRow将不显示数据库的内容

ASP.NET:DataRow将不显示数据库的内容

推荐文章

安卓捕捉播放声音

安卓捕捉播放声音

推荐文章

如何让一个像gmail和facebook这样的交互式上传程序?

如何让一个像gmail和facebook这样的交互式上传程序?

推荐文章

这个deque线程在python中是安全的吗?

这个deque线程在python中是安全的吗?

推荐文章

可恢复处理器故障

可恢复处理器故障

推荐文章

使用php向菜单链接添加活动类

使用php向菜单链接添加活动类

推荐文章

OpenSSL AES256 cbc加密

OpenSSL AES256 cbc加密

推荐文章

初始化器多久在Rails中运行一次?

初始化器多久在Rails中运行一次?

推荐文章

单击iframe上的HTML元素

单击iframe上的HTML元素

推荐文章

实时艺术项目---输入:声音---输出:图像(更好的标题?)

实时艺术项目---输入:声音---输出:图像(更好的标题?)