私はParty型のメンバーのリストを作成し、そのメンバーIDをクリックしたメンバーIDを自動的に取得する更新ページにリンクしようとしています。MVC - JSPを使用してリクエスト/セッションでフィールドの値を送信する
すべてのメンバーのビューを表示するためにサーブレットにコードを記述しました。そのIDはそれぞれUpdateParty.jspというページにリンクされていますが、クリックしたIDはリクエストをUpdateParty.jspでパラメータとして使用できるようにして、ユーザーが入力する必要がないようにします。
私は誰でも知りたいと思えば私のSQLのためにpostgresを使用しています。すべてのパーティーメンバーのリストを作成
サーブレットコード:ViewPartyMembers.jspため
else if (request.getParameter("listallmembers") != null) {
try {
User sessionuser = (User) session.getAttribute("User");
String u = sessionuser.getUsername();
ArrayList<Party> p = new ArrayList<Party>();
ResultSet rs = this.findAllMembers(u);
while (rs.next()) {
Party party = new Party();
party.setMemberID(rs.getString("memberID"));
party.setPartyFirstname(rs.getString("partyFirstname"));
party.setPartySurname(rs.getString("partySurname"));
party.setUsername(rs.getString("username"));
p.add(party);
}
request.setAttribute("members", p);
request.getRequestDispatcher("ViewPartyMembers.jsp").forward(request, response);
} catch (Exception e) {
out.print(e);
e.printStackTrace(out);
}
コード:
<%@page import="HolidayExchange.Party"%>
<%@page import="HolidayExchange.User"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>All Party Members</title>
</head>
<body>
<h1>View Party Members</h1>
<%
List<Party> l = (List<Party>) request.getAttribute("members");
if(l!=null){
out.println("<table>");
out.println("<tr><th>Member ID</th><th>Firstname</th><th>Second Name</th><th>Associated User</th></tr>");
for(int i = 0; i < l.size();i++){
out.println("<tr><td>"+ l.get(i).getMemberID() +
"</td><td><a href='UpdateParty.jsp'>"+ l.get(i).getPartyFirstname() +
"</a></td><td>"+ l.get(i).getPartySurname() +
"</td><td>" + l.get(i).getUsername() + "</td>");
out.println("</tr>");
}
out.println("</table>");
}else{
%>
<form action="PartyServlet" method="get">
<input type="hidden" name="listallmembers" value="1" /><br />
<input type="submit" value="Show all Members" />
</form>
<%
}
%>
</body>
</html>
理想的には、コントローラ経由ですべて行いたいのですが、ハイパーリンクされたフィールドを直接操作することなく、リンクされたテキストの値を更新サーブレットに渡す方法がわかりませんでした。 – Jimmy
また、 'l.get(i).getMemberID()+' – Jimmy
の代わりにそのコードを使用してください。idをJSP/Contollerに渡すためのリンクを使用するのは悪い方法ではありません。 – jddsantaella