我有一個JSP,我從數據庫顯示日期和描述。每個條目都有唯一的ID,但我沒有在頁面上顯示(顯示覆選框) 使用「logic:iterate」引發了這些條目,因此行數總是根據條目而變化。 現在這些字段顯示爲文本字段,以便用戶也可以更新日期或說明。複選框位於左側,因此 用戶可以選擇他們想要更新的所有值。記住邏輯:迭代上面,複選框必須使用名稱來定義,並且 不能有id。在我的struts行動類錯誤
...
...
<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>
...
我的錯誤是,如果我有三個排,我想更新第三排和第三選擇複選框。我的Action類正在檢索第一行日期和desc。 如何編輯我的操作類以檢查選中的複選框的值?
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);
...
我不這樣做的Struts,所以這裏只是一個提示,以幫助您一步:在網頁瀏覽器,右擊打開頁面,並選擇*查看源文件*。這一切看起來不錯嗎? – BalusC 2010-08-26 16:09:07