2012-07-21 54 views
0

我創建了一個for循環來顯示數據庫,文本框和按鈕的所有值。 因此,對於顯示的每個值都會有一個文本框和「回覆」按鈕。 因此,當我點擊「回覆」按鈕時,文本框中的文本以及值「我正在回覆」的ID將被存儲到數據庫中。 但是,我想如何獲得具體價值的我「回覆」的ID? 下面是在JSP頁面的代碼獲取我要回復的「評論」的標識(JSP)

 <% 
    ConnectionDB uDB = new ConnectionDB(); 
    Comment[] comment = uDB.getComment(); 
     %> 
    <% 
    for (int i = 0; i < comment.length; i++) { 
    %> 
      <%=uDB.getMemberName(comment[i].getMemberId()).getFirstName()%> 
      <%=uDB.getMemberName(comment[i].getMemberId()).getLastName()%> 
      <%=comment[i].getCommentDesc() %> 
      <br><input type="text" name="replycommenttxt" size="20"> 
       <input type="submit" name="replycommentbutton" value="reply" > 
    <% } %> 

回答

0

儲存於表單的一個隱藏字段:

<input type="hidden" name"parentCommentId" value="<%= comment[i].getId() %>" /> 

你真的應該瞭解JSP EL中,JSTL和MVC模式。從JSP中的數據庫讀取數據並使用scriptlet是非常糟糕的做法。

+0

好的。指出。謝謝。我得到了Id,但它是for循環的第一行的id。我想如何獲得其他值的ID?以下是servlet中用於調用id和txtfield的代碼。 Member m =(Member)session.getAttribute(「memberinfo」); \t \t int i = Integer.parseInt(request.getParameter(「parentCommentId」)); \t \t \t replycomment.setMemberId(m.getMemberId()); \t \t \t replycomment.setCommentdId(i); \t \t \t replycomment.setReplyDesc(request.getParameter(「replycommenttxt」)); – FredHomme 2012-07-21 13:33:42

+0

我不確定我關注。請務必爲每條評論生成一個表單,而不是針對所有評論的單一表單。 – 2012-07-21 13:35:50

+0

好的。瞭解。我去試試看。 – FredHomme 2012-07-21 13:37:13

0

你必須使用「ParameterValues」和「for」子句來獲得你想要的其他id。

Member m = (Member)session.getAttribute("memberinfo"); 
String[] parentCommentId=request.getParameter("parentCommentId")); 
replycomment.setMemberId(m.getMemberId()); replycomment.setCommentdId(i); 
replycomment.setReplyDesc(request.getParameter("replycommenttxt"));