struts ActionForm如何接收表单提交上来的多行数据

illos 2008-09-08 11:48:00
如果表单里的数据是 <text name="user.name" value="xx" /><text name="user.email" value="xx"> 这样的话,
ActionForm里只要声明一个 User对象就可以接收到 这两个文本框的数据,
但是我将一组数据从数据库取出在页面上显示
<html:form action="user">
<logic:iterate id="user" name="users" scope="request" >
<html:hidden property="user.id" value=${user.id}/>
<html:text property="user.name" value="xx" />
<html:text property="user.email" value="xx">
</logic:iterate>
<html:submit>修改</html:submit>
</html:form
页面上是多行数据. 我点 修改 按钮提交表单, 这时数据在ActionForm应该怎么做处理,
我想过用 Map 来存这些数据. 但是要怎么写呢?
...全文
393 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
illos 2008-09-08
  • 打赏
  • 举报
回复
actionForm 里怎么送??
illos 2008-09-08
  • 打赏
  • 举报
回复
+ i ? 改变他的 name 名, 那 i = user.id??
wpabbs 2008-09-08
  • 打赏
  • 举报
回复
<html:form action="user">
<logic:iterate id="user" name="users" scope="request" >
以下是参考代码
<input type=hidden name=urseid+i value=user.id>
<input type=text name=username+i value=user.name>
<input type=text name=useremail+i value=user.email
</logic:iterate>
<html:submit>修改 </html:submit>
</html:form
illos 2008-09-08
  • 打赏
  • 举报
回复
jiawenzhi78 2008-09-08
  • 打赏
  • 举报
回复
数据放进vector,再放到session里啊?
一定要用actionform解决吗?
no9988 2008-09-08
  • 打赏
  • 举报
回复
还只学过 struts1

里面是绑定了bean ,

在 actionform 里面 只需要
得到一个 对象
通过 对象.get**() 然后 直接 update 到数据库就可以了``

楼主的问题 不知道怎么解决`
`
思無芷盡 2008-09-08
  • 打赏
  • 举报
回复
页面上 form里 name一样的对象 在form提交数据到后台 是把这个属性作为一个对象,可以有两种接收的方法。

<tr>
<td> <html:text property="user.id" readonly="true" value="${user.id}" /> </td>
<td> <html:text property="user.name" value="ddd"/> </td>
<td> <html:text property="user.email" value="ffff"/> </td>
</tr>

<tr>
<td> <html:text property="user.id" readonly="true" value="${user.id}" /> </td>
<td> <html:text property="user.name" value="啊啊啊"/> </td>
<td> <html:text property="user.email" value="是”> </td>
</tr>

ActionForm user.java里面
private String name;
private String email;
set,get方法....

1. 如果在ActionForm中的 属性对应类型是 字符串,接收到页面的同属性名数据,是以逗号间隔存放在这个字符串里面的,用字符串","截取。就能取到对应的单个值。例如:name= "ddd,啊啊啊"; email = "ffff,是";
ActionForm user.java里面
private String[] name;
private String[] email;
set,get方法....


2. 如果ActionForm中的属性对应的类型设置为字符串数组 接收到页面的值就是一个数据对象,以数组方式存储,有页面的对应的自上而下的顺序。按顺序取。例如:name= {ddd,啊啊啊};email = {ffff,是};

illospan 2008-09-08
  • 打赏
  • 举报
回复
2楼的方法是可以, 我现在是这样写的
<logic:iterate id="user" name="users" scope="request">
<tr>
<td><html:text property="user.id" readonly="true" value="${user.id}" /></td>
<td><html:text property="${user.id}_user.name"value="${user.name}" /></td>
<td><html:text property="${user.id}_user.email" value="${user.email}"/></td>
</tr>
</logic:iterate>

java Action 中
Map maps = request.getParameterMap();
List<User> users = new ArrayList<User>();
String[] obj = (String[])maps.get("user.id");
for(String str : obj){
User user = new User();
user.setName(request.getParameter(str + "_user.name"));
user.setEmail(request.getParameter(str + "_user.email"));
user.setId(Integer.parseInt(str));
users.add(user);
}


请问还有其他的方法吗??
illos 2008-09-08
  • 打赏
  • 举报
回复
...................................................................

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧