不需要迭代器。
在您的操作中将值设置为会话属性。
在 Jsp 中使用名称检索它们
例如:
Name:<s:property value="#session.a" /><br>
Age:<s:property value="#session.b" /> <br>
Marks:<s:property value="#session.c" /><br>
Country:<s:property value="#session.d" />
这应该可以。
更新1:
用于显示所有输入的值集:
1) 创建一个
POJO
来存储所有这些值(调用 Person
)。arraylist of Person
物体。在 JSP 和实际操作中,您正在处理对象或对象数组。使用什么结构并不重要,重要的是对象具有
Name
、Age
、Marks
、Country
等属性,并且它们属于名为 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>
此表单不会显示值(因为值映射到操作属性
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>