Ich versuche, eine Liste von Mitgliedern des Typs Party, und ihre Mitglieds-ID zu einer Update-Seite verknüpfen, die automatisch die Mitglieds-ID der geklickt erhält .MVC - Senden Wert eines Feldes mit Anfrage/Sitzung über eine JSP
Ich habe bereits Code in das Servlet geschrieben, um eine Ansicht aller Mitglieder anzuzeigen, wobei jede ihrer IDs mit einer Seite namens UpdateParty.jsp verknüpft ist, aber was ich will ist, dass die ID mit übergeben wurde die Anfrage, damit sie in der UpdateParty.jsp als Parameter verwendet werden kann, damit der Benutzer sie nicht eingeben muss.
Ich benutze postgres für meine SQL wenn jemand wissen will.
Servlet-Code, der eine Liste aller Parteimitglieder produziert:
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);
}
-Code für ViewPartyMembers.jsp:
<%@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>
Idealerweise möchte ich alles über den Controller machen, jedoch war ich mir nicht sicher, wie man den Wert des verlinkten Textstückes auf das Update-Servlet übergibt, ohne direkt an dem verlinkten Feld zu arbeiten. – Jimmy
Auch sollte dieser Code ersetzen 'l.get (i) .getMemberID() +' – Jimmy
Verwenden Sie einen Link, um ID an die JSP/Contoller übergeben ist kein schlechter Ansatz. – jddsantaella