首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么用Struts标签实现多行提交

2012-01-07 
如何用Struts标签实现多行提交?如何用Struts标签实现多行提交?我在网上找了很多资料,使用数组的用过,可以

如何用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的代码贴出来。

热点排行
Bad Request.