提交多行数据到Struts的ActionForm的List属性中 - 编程入门网
count的name属性
输入框名为 stocks[0].code 提交后会设置到 accountStockForm 的 List stocks的第一个元素的code属性.以此类推 在提交表单前要重排行层的索引,从 0 起, 否则到后右的 Form 会一些空数据. 提交多行数据到Struts的ActionForm的List属性中(3)时间:2011-03-23 隔叶黄莺三: AccountStockForm 的关键代码
定义了两个属性,分别是一个bean(Account,接受基本信息)和一个List(stocks,接受股票行信息),注意这两个属性必须初始化,不然在表单提交后会出现空指针错误. setStocks方法是让stocks属性永远保有持是一个 AutoArrayList 实例. 这样在表单提交后设置值是总能调用 AutoArrayList 的 get(int index) 方法. 四: 自定义的 AutoArrayList
理解为什么要继承一个ArrayList, 覆写get(int index)方法要简单了解 Struts 处理提交数据的工作原理: 大致如下: 页面提交后, 由 ActionServlet交给RequestProcessor的processPopulate()方法,由processPopulate()方法收集请求数据,放在map中,key为表单域的name属性,如 name, account.name, stocks[0].code. 然后借助于 Common-beanutils 工具包设置到 ActionForm 的相应属性中 如果key是简单的''name'',直接form.setName(map.get(''name'')); 如果key是''account.name'', 执行的操作是 form.getAccount().setName(map.get(''account.name''); 如果key是''stocks[0].code'', 它可以对应到数据或集合中,如对于数组 form.stocks[0].code=map.get(''stocks[0].code''); 对于集合(List) form.get(0).setCode(map.get(''stocks[0].code'')) 从上也能理解为什么 form 中的那两个属性必须实始化,不然会出现空指针错. 而且为什么 stocks 要用 AutoArrayList 实例化, 避免出现索引越界的错误. 提交多行数据到Struts的ActionForm的List属性中(4)时间:2011-03-23 隔叶黄莺五: 在 AccountStockAction 中可以打印出提交的数据
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |