博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决s:iterator嵌套s:radio的传值问题
阅读量:4070 次
发布时间:2019-05-25

本文共 928 字,大约阅读时间需要 3 分钟。

问题描述:

使用SSH开发留言板的审核功能时,因为要做批量审核,在action中获取了所有未审核的信息,前台需要对应每一个信息生成一个单选框,即通过,删除,不处理.其中遇到了三个问题:    1.迭代器中的s:radio 的name命名问题,name必要根据索引动态改变,否则迭代器中的单选框都在一个组里面只能选一个.    2.获取到所有的值如何传回来,网上大多数都是说用js拼接成字符串传入再拆分,或者通过requset来传值拆分.    3.获取到值之后,处理每个实体对象时报空指针异常.

解决方案:

private ArrayList
oplist;private List
messageList;
messageList为未处理的留言集合.对于问题二,我们生成一个长度为messageList大小的集合oplist,并置初值为0;
this.oplist = new ArrayList
();for(int i=0;i
对于第一个问题,我们使用ognl表达式动态的对s:radio 的name赋值
赋值完成后通过浏览器查看源代码发现name变成了oplist[0],oplist[1]..... 之后在action中对循环获取messageList中的元素,根据oplist.get(i)的值对实体进行操作就好了.
for(int i=0;i

至此,传值问题完美解决.

问题三:
但在这里获取mb对象时回报空指针异常,原因为action并不是一个单例模式,而是用一次申请一次,而提交表单之后messageList的值为null,此时对messageList的值进行操作,就会报空指针异常了.
所以,我们在for循环前重新获取一下messageList的值.

this.messageList = mdao.getNotAuditMessage();

最后返回审核页面的时候别忘了重置messageList和oplist的值

this.messageList = mdao.getNotAuditMessage();oplist.clear();for(int i=0;i

转载地址:http://sehji.baihongyu.com/

你可能感兴趣的文章
OS + Unix HP-UX
查看>>
OS + Unix Solaris / openSolaris
查看>>
db sql montior
查看>>
Unix + SCO UnixWare
查看>>
db db2 books
查看>>
read humor_campus
查看>>
IBM WebSphere Commerce Analyzer
查看>>
Unix + OS IBM Aix System Director
查看>>
Unix + OS IBM Aix FTP / wu-ftp / proftp
查看>>
my read work
查看>>
db db2 base / instance database tablespace container
查看>>
hd disk / disk raid / disk io / iops / iostat / iowait / iotop / iometer
查看>>
project ASP.NET
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
OS + Unix Aix telnet
查看>>
IBM Lotus
查看>>
Linux +Win LAMPP Tools XAMPP 1.7.3 / 5.6.3
查看>>
my read_university
查看>>
network manager
查看>>
OS + Linux Disk disk lvm / disk partition / disk mount / disk io
查看>>