在 JSP 和实际操作中,您正在处理对象或作为对象数组的对象。使用什么结构无关紧要,对象具有诸如Name
、Age
、 之类的属性又有什么关系Marks
,Country
它们属于一个名为 it 的实体Person
。
@Entity
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
...
//other fields
}
现在,会话应该包含许多这样的对象,因此您应该创建一个列表并将其放入会话中。
public List<Person> getPersonList() {
List<Person> personList = (List<Person>) session.get("personList");
if (personList == null) {
personList = new ArrayList<Person>();
session.put("personList", personList);
}
return personList;
}
然后,在操作中,您应该有一个映射到表单字段的对象,该对象在提交时保存到会话中。它是同一个Person
对象。
private Person person = new Person();
//public getters and setters
现在地图的形式
<s:form action="verify">
<s:textfield name="person.name" label="Enter Username" /><br>
<s:textfield name="person.age" label="Enter Age" /><br>
<s:textfield name="person.marks" label="Enter Marks" /><br>
<s:textfield name="person.country" label="Enter Country" /><br>
<s:submit value="Click" id="submit" />
</s:form>
此表单不会显示值(因为值已映射到 action 属性Person
并且它是空的)
如何填写我在前面的例子personList
中已经解释过了。现在要从中迭代值(人),即在会话中使用
<s:iterator value="#session.personList">
Name:<s:property value="name" /><br>
Age:<s:property value="age" /> <br>
Marks:<s:property value="marks" /><br>
Country:<s:property value="country" /><br>
</s:iterator>