- PR -

[Struts] logic:iterateの入れ子について

1
投稿者投稿内容
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2004-12-20 14:56
はじめまして、sshirと申します。
ここ数日、下記の問題について悩んでいるのですが、
どなたか解決法をご存知の方がいらっしゃいましたら、助けてください。
よろしくお願いします。

問題点
iterateの入れ子を用いて表示したテキストボックス等の値が取得できない。

以下 自分が必要と思ったソースの抜粋です。

************************************************************************
TblForm(ActionFormクラス)

List list=null;

public void setRow(int index, RowForm obj){list.set(index, obj);}
public RowForm getRow(int index){ return (RowForm)list.get(index);}
public List getRows(){ return list;}

************************************************************************
RowForm(ActionFormクラス)

List list=null;

public void setCol(int index, ColForm obj){list.set(index, obj);}
public ColForm getCol(int index){ return (ColForm)list.get(index);}
public List getCols(){ return list;}

************************************************************************
ColForm(ActionFormクラス)

private String name=null;
private String id=null;

public String getName(){ return name;}
public String getId() { return id;}

public void setName(String name){ this.name = name;}
public void setId (String id) { this.id = id;}

************************************************************************
入出力JSP

<logic:iterate id="row" name="TblForm" property="rows">
<tr>
<logic:iterate id="col" name="row" property="cols">
<td><html:text name="col" property="name" indexed="true" /></td>
<td><html:text name="col" property="id" indexed="true" /></td>
</logic:iterate>
</tr>
</logic:iterate>



以上です。
その他、解決に際して不明な点があれば出来る限り早く追記させて頂きます。
よろしくお願いします。
sshir
会議室デビュー日: 2004/12/20
投稿数: 6
投稿日時: 2004-12-20 17:03
自己レスです。
どうにか自力で解決させる事ができました。
考えてくださった皆さん、どうもありがとうございました。

私の解決方法を下記します。
なにか改善があったら教えてください。
よろしくお願いします。

☆私の解決方法
@JSPのみ修正、修正後の内容を以下に示します。

************************************************************************
入出力JSP

<logic:iterate id="row" name="TblForm" property="rows" indexId="rIdx">
<tr>
<logic:iterate id="col" name="row" property="cols" indexId="cIdx">
<%
String pName = "row[" + rIdx + "].col[" + cIdx + "].name";
String pID = "row[" + rIdx + "].col[" + cIdx + "].id";
%>

<td><html:text name="TblForm" property=<%=pName%> /></td>
<td><html:text name="TblForm" property=<%=pId%> /></td>
</logic:iterate>
</tr>
</logic:iterate>
1

スキルアップ/キャリアアップ(JOB@IT)