我正在尝试创建一个更新MySQL数据库中的条目的表单。该表是一个用户表,其中包含与用户相关的各种字段。我需要此页面作为更新表单工作,该表单采用通过上一页传递给它的用户名,并使用现有数据预填充文本字段。它是一个使用表示,传输和数据层的模型应用程序。传输层是User.java,数据层(与数据库交互)是UserDB.java。
这是代码,除了预填充之外,一切都是有用的。
更新:我已编辑以反映下面答案中的更改,我还要注意“UserDB.getUsers()”返回一个ArrayList。
<%@ page language="java" contentType="text/html; charset=iso-8859-1"
pageEncoding="ISO-8859-1" import="java.util.ArrayList,beans.*,data.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
//get parameters from the request
String userName = request.getParameter("userName");
ArrayList userList = UserDB.getUsers(userName);
User user = userList.get(0);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="styles/style.css" type="text/css" />
<title>User Admin</title>
</head>
<body>
<div id="main">
<h1>Update User</h1>
<h3>User Info</h3>
<hr>
<div id="content">
<form action="updateUser.jsp" method="get">
<p>User Name<br>
<input type="text" name="userName" size="20" value="<%=userName%>"/>
</p>
<p>Password<br>
<input type="text" name="password" size="20" value="<%=user.getPassword()%>"/>
</p>
<p>First Name<br>
<input type="text" name="firstName" size="20" value="<%=user.getFirstName()%>"/>
</p>
<p>Last Name<br>
<input type="text" name="lastName" size="20" value="<%=user.getLastName()%>"/>
</p>
<p>Email Address<br>
<input type="text" name="email" size="20" value="<%=user.getEmail()%>"/>
</p>
<p>
<input type="submit" value="Commit Update">
</p>
</form>
</div>
</div>
</body>
</html>
我知道我对“用户”对象做错了,但我忽略了它。
答案 0 :(得分:3)
您将用户名作为字符串传递
<%
//get parameters from the request
String userName = request.getParameter("userName");
user = UserDB.getUsers("userName");
//it should be (with out the quotes
user = UserDB.getUsers(userName);
%>
答案 1 :(得分:0)
“用户名”应删除引号。另外,你在哪里声明用户的类型? 即
User user = .... getUser ..