如何用Struts标签实现多行提交?
如何用Struts标签实现多行提交?
我在网上找了很多资料,
使用数组的用过,可以显示,但是提交的时候
不行,出现Bui之类的,说是数据提交错误
使用子类,然后用List
并且扩展类Arrayh后AutoArrayList也出现错误,我的代码如下:
private List course_arraylist = new AutoArrayList(Course.class);
使用的AutoArrayList扩展ArrayList
package course;
import java.util.ArrayList;
public class AutoArrayList extends ArrayList {
private Class itemClass;
public AutoArrayList(Class itemClass)
{
this.itemClass = itemClass;
}
public Object get(int index)
{
try {
while (index > = size())
{
add(itemClass.newInstance());
}
}
catch (Exception e)
{
e.printStackTrace();
}
return super.get(index);
}
}
可以显示数据,从程序里面,使用输入框
但不伦如何都无法得到数据
得到的是我用程序输入的,而不是客户端的数据
<html:form method= "post " action= "/course/course.do?type=do_message ">
<br> <br>
<logic:iterate id= "a " name= "list " property= "course_arraylist " indexId= "index ">
<html:text name= "a " property= "course_no " indexed= "true " />
<html:text name= "a " property= "course_name " indexed= "true "/> <br>
</logic:iterate>
<html:submit value= "submit " />
</html:form>
接受的Action为:
public ActionForward do_message(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
CourseForm m_form = (CourseForm) form;
调试这里的m_form是原来的值,并非用户通过输入后改变的值
请问是么原因?有没有谁有好的关于使用标签实现多行提交
在jsp里面不写 <%%> 这样的脚本的程序
[解决办法]
数组可以搞定
[解决办法]
<logic:iterate> 标签外面肯定要加个form标签的,提交地址就是你的修改action
主要问题就是批量修改,一种就是利用表单数组,你struts配置文件里面formbean定义一个java.lang.String[]数组接受
或者提交之前把所有要修改的记录的各个属性,各自合并成一个字符串,然后到服务端拆解
最后再通过循环更新
记得要把你每条记录的主健传过去,更新或者删除的时候要用,可以在每条记录前加个复选框,值就为ID
jsp:
<html:form action= "/update.do ">
<logic:iterate id= "zhunjiachexing " name= "data ">
......
.....
<input type= "checkbox " name= "numbers " value= " <bean:write name= "zhunjiachexing " property= "number "/> " />
<html:text name= "zhunjiachexing " property= "name " size= "40 " style= "text-align:right; " />
<input type= "submit " name= "submitbtn " value= "修改 "/>
</logic:iterate>
</html:form>
struts-config.xml关于update的formbean属性
<form-property name= "name " type= "java.lang.String[] "/>
update action部分代码
DynaActionForm daf = (DynaActionForm) actionForm;
String[] names = (String[])daf.get( "name ");
String[] numbers= (String[]) daf.get( "numbers ");
for ( int num = 0; num < numbers.length; num++ ) {
//update zhunjiachexing set name=names[num] where number=numbers[num]
}
[解决办法]
有没有完整的例子?
[解决办法]
帮顶
[解决办法]
把CourseForm的代码贴出来。