【发布时间】:2010-01-09 07:54:39
【问题描述】:
我们正在使用 struts 2.0.14 并面临将索引属性从 JSP 设置回操作类的问题。
代码看起来与此类似。
public class MyExample extends ActionSupport
{
private List<Person> persons;
private List<String> names;
public String execute()
{
//persons = myDAO.readPersons(names);
return SUCCESS;
}
public String update()
{
for (Person p : persons)
{
System.out.println(p.getName() + "---" + p.getAddress().getStreet());
}
return SUCCESS;
}
// Getters and setters
}
class Person
{
private Address address;
private String name;
// Getters and setters
}
class Address
{
private String street;
private String number;
// Getters and setters
}
And JSP:
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!---- Other code ---->
<s:ieterate value="persons" status="status">
<tr>
<s:textfield name="person['%{#status.index}'].name"/>
<s:textfield name="person['%{#status.index}'].address.number"/>
<s:textfield name="person['%{#status.index}'].street"/>
</tr>
我可以成功地在页面上显示值,但是当我提交表单时,值没有被填充。 我检查了firebug,看看参数是如何发布的,它们就像person['0'].name,person['0'].address.number等,请告诉我错误在哪里。
【问题讨论】: