1)HTTPGET
リクエストをシミュレートするリンクがHTMLページにあります(クエリ文字列を手動で指定します。このページは基本的に、doGet()
メソッドでデータベースアクセスが行われるサーブレットを呼び出します。SQLクエリはクエリの一部として送信されます。ストリング。
http://localhost:8080/prelim_db_test_19_3_2013/md?q=select * from test.mobile
(test
はMySQL DBでmobile
あり、はテーブルです)。
2)次に、結果はArrayListに格納されます。
ArrayList <mobile> mylist=new ArrayList<mobile> ();
mylist.add(new mobile(rs.getInt("id"),rs.getString("name")));
ここで、mobile
は単にクラス変数としてのクラス(およびコンストラクターも)id
ですname
3)次に、次のArrayList
ように別のJSPに転送されます。
request.setAttribute("answer", mylist);
request.getRequestDispatcher("info.jsp").forward(request, response);
4)2番目のJSPでは<c:forEach>
、テーブルの内容を繰り返して印刷するために簡単に使用します。
<c:forEach items="${answer}" var="i">
<tr>
<td>${i.id}</td>
<td>${i.name}</td>
</tr>
</c:forEach>
それでも、プロジェクトを実行すると、例外がスローされます。
javax.el.PropertyNotFoundException: Property 'id' not found on type mobile
この行で:
request.getRequestDispatcher("info.jsp").forward(request, response);
結果がコンソールに出力されるとき、DBアクセス自体は正常に機能することに注意してください(したがって、サーブレットもクエリ文字列で呼び出されます)。これがEclipseでの私のプロジェクトのセットアップです(セットアップ方法に問題がある場合):
私はここで何が間違っているのですか?
編集 mobile.java
:
public class mobile {
int id;
String name;
public mobile(int i,String n) {
id=i;
name=n;
}
}