データベースからの日付と説明を表示している JSP があります。すべてのエントリには一意の ID がありますが、ページには表示されません (チェックボックスを表示) これらのエントリは「ロジック:反復」を使用してスローされるため、エントリに基づいて行数が常に変化します。現在、これらのフィールドはテキスト フィールドとして表示されるため、ユーザーは日付や説明を更新することもできます。チェックボックスが左側にあるため、ユーザーは更新するすべての値を選択できます。上記の logic:iterate を思い出してください。チェックボックスは name を使用して定義する必要があり、id を持つことはできません。
...
...
<logic:notEmpty name="specialResult" scope="request">
<logic:iterate name="specialResult" id="specialResult" indexId="index">
<tr align="center">
<td width="15%">
<input type="checkbox" name="upisActive" property="upisActive"
value="<bean:write name="specialResult" property="upId"/>"></input></td>
<td width="15%"><input type="text" name="upDate" value="<bean:write name="specialResult" property="upDate"/>"
property="upDate" size="20" class="Date" id="Date"></input></td>
<td width="15%"><input type="text" name="upDesc" value="<bean:write name="specialResult" property="upDesc"/>"
property="upDesc" size="20" id="Desc"/></td>
</tr>
</logic:iterate>
...
私のエラーは、3 つの行があり、3 番目の行を更新して 3 番目のチェックボックスを選択したい場合です。私の Action クラスは、最初の行の日付と説明を取得しています。アクション クラスを編集して、チェックされたチェックボックスに対して値を取得するにはどうすればよいですか?
public ActionForward class(ActionMapping mapping, ActionForm theForm,
HttpServletRequest request, HttpServletResponse response) throws IOException,
SQLException, ServletException
{
Connection conn = null;
Service Serv = new Service();
List updList = new ArrayList();
Form upForm = (Form) theForm;
String[] values = request.getParameterValues("upisActive");
try
{
conn = getConnection(request, false);
for (int i=0;i<values.length;i++){
VO hdvo = new VO(); //Vo class with getters and setters
val = values[i];
hdvo.setDate(upForm.upDate[i]);
hdvo.setDesc(upForm.upDesc[i]);
updList.add(hdvo);
}
hdServ.updTest(updList, conn);
...