※ ChatGPTを利用し、要約された質問です(原文:java strutsでの一覧表の表示方法について)
Java Strutsでの一覧表の表示方法について教えてください
このQ&Aのポイント
Java Strutsで一覧表を表示する際に、表示されるデータが重複してしまう問題が発生しています。
SP0010_FORM_Bean.javaとSP0010_FORM.javaの処理で、リストにデータを追加する際に同じオブジェクトを使用しているため、最終的に全てのデータが同じになってしまっています。
一覧表を正しく表示するためには、リストにデータを追加する際に毎回新しいオブジェクトを作成し、データを設定する必要があります。
java strutsでの一覧表の表示方法について
以下の内容でロジックを組んだのですが、
jspより表示される一覧表は、003 name3が3件表示されてしまいます。
一覧表を正しく表示できない原因を教えてください。
SP0010_FORM_Bean.java
public class SP0010_FORM_Bean {
protected String id;
protected String name;
public void setId(String s) {
id = s;
}
public String getId() {
return id;
}
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}
}
SP0010_FORM.java
public class SP0010_FORM extends ValidatorForm{
protected List<SP0010_FORM_Bean> loopList;
public void setLoopList(List<SP0010_FORM_Bean> list) {
loopList = list;
}
public List<SP0010_FORM_Bean> getLoopList() {
return loopList;
}
}
SP0010_ACTION_10.java
SP0010_FORM initBean = new SP0010_FORM();
request.setAttribute("list_form", initBean);
List<SP0010_FORM_Bean> list = new ArrayList<SP0010_FORM_Bean>();
SP0010_FORM_Bean bean1 = new SP0010_FORM_Bean();
bean1.setId("001");
bean1.setName("name1");
list.add(bean1);
bean1.setId("002");
bean1.setName("name2");
list.add(bean1);
bean1.setId("003");
bean1.setName("name3");
list.add(bean1);
initBean.setLoopList(list);
jsp
<table border="1">
<logic:iterate id="loop" name="list_form" property="loopList">
<tr>
<td><bean:write name="loop" property="id" /></td>
<td><bean:write name="loop" property="name" /></td>
</tr>
</logic:iterate>
</table>
お礼
ありがとうございます。 無事解決しました。