Struts数组提交问题
我的代码如下:
<logic:iterate name= "list " id= "vest " property= "student_score " indexId= "index ">
<html:text name= "list " property= ' <%= "student_score[ "+index+ "] "%> ' />
</logic:iterate>
有这种方法可以很好的现实,即数据属性
但是提交的时候出现如下错误
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.servlet.
ServletException: BeanUtils.populate
如果界面使用:
<html:text name= "list " value= ' ' property= 'student_score ' maxlength= "8 " size= "8 " indexed= "true "/>
这种方法可以提交页面显示的多行数据,
但是我初始化的时候需要放入一些数据,却无法得到,显示为
[Ljava.lang.String;@157b39f
如果加入value= ' '可以显示为空
但是程序给这个数组给值了阿
我的想法是:
从程序里面放入一些值给数组
然后让用户修改这些数组的值,然后提交
之使用标签的方法,不想在jsp里面写其他的不正规做法
有没有高手指点一下,最好由例子,完整的
网上我也找了,那种使用AutoArrayList从新ArrayList写get的方法我也用过
不行
------解决方案-------------------- <logic:iterate> 标签外面肯定要加个form标签的,提交地址就是你的修改action
主要问题就是批量修改,一种就是利用表单数组,你struts配置文件里面formbean定义一个java.lang.String[]数组接受
或者提交之前把所有要修改的记录的各个属性,各自合并成一个字符串,然后到服务端拆解
最后再通过循环更新
记得要把你每条记录的主健传过去,更新或者删除的时候要用,可以在每条记录前加个复选框,值就为ID
------解决方案-------------------- <logic:iterate name= "list " id= "vest " property= "student_score " indexId= "index ">
<html:text name= "list " property= ' <%= "student_score[ "+index+ "] "%> ' />
</logic:iterate>
把 list放到session里吧,在jsp页面从session取,应该可以的