2010-04-19 56 views
0

顯示從數據庫中的數據我有如下2個JSP頁面:到文本框中

projectcategory.jsp

<% 
    Connection con = DbConnect.connect(); 
    Statement s = con.createStatement(); 

    ResultSet rs = s.executeQuery("select * from projectcategory"); 
%> 
     <DIV class="TabbedPanelsContent" align="center"> 
     <TABLE border="1"> 
      <TR> 
       <TH>CATEGORY ID</TH> 
       <TH>CATEGORY NAME</TH> 
       <TH>Edit/Update</TH> 
      </TR> 

      <% 
       while (rs.next()) { 
      %> 
      <%String p=rs.getString(1);%> 

      <TR> 
       <TD><%=rs.getString(1)%></TD> 
       <TD><%=rs.getString(2)%></TD> 
       <TD> 

       <FORM action="EditPcat.jsp?pcatid=p"><INPUT type="submit" 
        value='edit/update'></INPUT> 
       </FORM> 

       </TD> 
      </TR> 

      <% 
       } 
      %> 
     </TABLE> 
     </DIV> 

另一個是Editpcat.jsp:

</head> 
<body> 

<%String s=request.getParameter("p"); %> 



<form action="ProjCatServlet" method="post"> 
<div align="right"><a href="projectcategory.jsp">view</a></div> 
<fieldset> 

<legend>Edit category</legend> 
<table cellspacing="2" cellpadding="2" border="0"> 
    <tr> 
     <td align="left">Category Id</td> 

     <td><input type="text" name="pcatid" value="<%=s%>" ></td> 
    </tr> 

    <tr> 
     <td align="right">Category Name</td> 
     <td><input type="text" name="pcatname"></td> 
    </tr> 

    <tr> 
     <td><input type="submit" value="submit"></td> 
    </tr> 

</table> 

<input type="hidden" name="FUNCTION_ID" value="UPDATE"> 

</fieldset> 
</form> 

如何顯示值從我們從數據庫中獲得的一個JSP頁面到另一個JSP的文本框?

回答

0

這是非常髒,但你可以在你的表單中添加隱藏的INPUT標籤:BTW

<INPUT type="hidden" name="p1" value="<%=rs.getString(1)%>"> 
<INPUT type="hidden" name="p2" value="<%=rs.getString(2)%>"> 

:應關閉語句時不再需要的,否則你可能會在服務器上使用太多的資源。

2

你把它當作一個請求參數的名稱pcatid

<FORM action="EditPcat.jsp?pcatid=p"> 

但是你想獲得它的名稱p請求參數:

<%String s=request.getParameter("p"); %> 

對齊名字出來。

也就是說,你用servlets標記了這個問題,但你根本沒有使用servlet。這段代碼誠實地說是一場災難。 Scriptlets是一種糟糕的做法,JDBC代碼泄露資源。原始Java代碼屬於Java類,不屬於JSP文件。使用像JSTL這樣的標籤庫來控制頁面流並使用EL(表達式語言)來訪問後端數據。請通過those tutorials以正確使用。

開球例如:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 
    List<Project> projects = projectDAO.list(); 
    request.setAttribute("projects", projects); 
    request.getRequestDispatcher("projects.jsp").forward(request, response); 
} 

<table> 
    <c:forEach items="${projects}" var="project"> 
     <tr> 
      <td>${project.id}</td> 
      <td>${project.name}</td> 
     </tr> 
    </c:forEach> 
</table>