2011-07-13 4 views
0

私は、MySQLデータベースのエントリを更新するフォームを作成しようとしています。テーブルは、ユーザーに関連するさまざまなフィールドを含むユーザーテーブルです。このページは、前のページから渡されたユーザー名を取得し、既存のデータでテキストフィールドをあらかじめ入力する更新フォームとして機能する必要があります。これは、プレゼンテーション、トランスポート、およびデータレイヤーを使用するモデル1アプリケーションです。トランスポート層はUser.javaで、データ層(データベースと対話する)はUserDB.javaです。フォームのテキストフィールドを.jspのデータベースの情報で事前入力するにはどうすればよいですか?

ここにコードがありますが、すべては事前充填以外は機能しています。

更新:以下の回答からの変更を反映するように編集しました。また、「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> 

私は "user"オブジェクトに何か間違っていると知っていますが、私はそれを見落としています。

答えて

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); 

%> 
+0

これは1つのエラー、感謝でした!私はまだエラーが発生している: "エラーが発生した行:8のJSPファイル:/updateForm.jsp ユーザーは変数に解決できません"私は "ユーザー"を定義する必要があると言われた、私はしていないそれをどうやって行うのか。 – Ferret

+0

はい、そのあなたが 'ユーザのユーザ= UserDB.getUsers(ユーザー名)を言う必要が ...タイプ' User'の変数を宣言する等; ' あなたも(JSPでユーザークラスをインポートする必要があります{%@ page import = ""%> –

+0

ありがとう、私はそれを今更新しました。 \t \t \tユーザーユーザー= UserDB.getUsers(ユーザー名); %> 'まだ動作していません。 'UserDB.getUsers'はArrayListを返します。エラーは" jspファイルの9行目でエラーが発生しました:/updateForm.jsp 型不一致:ArrayList からユーザに変換できません " – Ferret

0

「ユーザ名」として名を渡している引用符を削除していなければなりません。また、ユーザーのタイプはどこで宣言していますか? すなわち

ユーザーユーザー= .... getUser ..

関連する問題