JSP および実際の動作では、オブジェクトまたはオブジェクトの配列であるオブジェクトを扱っています。Name
オブジェクトが、Age
、 などのプロパティを持ちMarks
、Country
それらが 1 つのエンティティ名 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>
このフォームは値を表示しません (値がアクション プロパティにマップされ、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>