MVCフレームワークを使用しているので、クエリの結果、つまりResultSetを表示のためだけにJSPに渡したいです。
私のサーブレットコード:
Connection c=Connectivity.dbConnect();
PreparedStatement ps=c.prepareStatement("select role from login where userid=? and password=?");
ps.setString(1,userid);
ps.setString(2,pass);
ResultSet rs=ps.executeQuery();
if(rs.next())
{
if(rs.getString(1).equals("admin"))
{
ps=c.prepareStatement("select * from user where userid=?");
ps.setString(1,userid);
rs=ps.executeQuery();
Result r=ResultSupport.toResult(rs);
request.setAttribute("res",r);
rs.close();
c.close();
return mapping.findForward("us");//to User.jsp
}
}
ResultSupport.toResult()を使用してJSPに転送しました(「us」マッピングによって転送されます)が、JSPにJSTLコードが必要です。
User.jsp-
<c:forEach var="data" items="${requestScope.res.rows}">
<h1>${data.userid}</h1>
<h2>${data.name}</h2>
<h2>${data.password}</h2>
<h2>${data.emailid}</h2>
</c:forEach>
request.setAttribute("ResultSet",rs);
さらに、JSPで接続を閉じることができないように、ResultSetを直接渡すと。
このコードは正常に機能しますが、JSTL / ELまたはリストを使用したくないので、サーブレットのResultまたはResultSet属性を処理できるJSPのスクリプトレットを使用したいと思います。