思考^新知^传播

crabhn's blog

 

[导入]解决Struts ActionForm对象数组提交错误的问题

我们在作订单提交的时候需要作一个嵌套着对象和对象数组的form,例如:
class OrderForm extent ActionForm
{
    Contract contract;
    Consumer[] consumers;
    ...
    ...
}
然后在html form里面用点属性的方式来进行提交:
<form ...>
    <input name="contract.name"/>
    ...
    <input name="consumers[0].name"/>
    ...
    <input name="consumers[1].name"/>
    ...
</form>
我想当然这样就可以提交过去了,因为以前我们有类似的代码,我也没有去看文档(不过我去找了文档也没有看到,估计需要看源代码:),但是提交失败了,页面完全出不来,而且代码都没有运行到Action里面去,说明struts在装载Form的时候就出了Exception。我研究了一个天都没有搞清楚,如果换成String数组的方式又太不直观,这时候就郁闷了。

不过昨天睡觉前我又理了一下思路,想起自己可能是没有初始化变量出错了。Struts往没有初始化过的变量里面set当然会有exception。:)

所以今天早上我就把Form改了一下:
class OrderForm extent ActionForm
{
    Contract contract = new Contract();
    Consumer[] consumers;
    ...
    ...
}

而consumers在Action里面初始化,把它根据需要初始化足够的Consumer。

但是,最后发现还是出不来页面。
这次也很直接,在xml配置里面把form的scope从request改成session,就ok了。

但是,struts还是没有搞得太清楚。最近听说struts和webwork合并了,作了一个Struts Ti,而且基于webwork2得核心,看来可以直接去看看webwork的文档,看看什么时候有机会把它引入我们的项目里面来。


文章来源:http://blog.donews.com/crabhn/archive/2006/03/01/748078.aspx

posted on 2006-03-01 19:53 crabhn's blog 阅读(2420) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜