我有2个JSP页面如下:
项目类别.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 的文本框中?
最佳答案
您将其作为名为 pcatid
的请求参数进行传递:
<FORM action="EditPcat.jsp?pcatid=p">
但是您尝试将其作为名称为 p
的请求参数获取:
<%String s=request.getParameter("p"); %>
将名称对齐。
也就是说,您用 servlet
标记了这个问题,但您根本没有使用 servlet。老实说这段代码是一场灾难。 Scriptlet 是一种糟糕的做法,并且 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>
关于java - 将数据库中的数据显示到文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667861/