MVC - Отправка значения поля с запросом / сессией через JSP - PullRequest
0 голосов
/ 02 апреля 2012

Я пытаюсь составить список членов типа Party и связываю их memberID со страницей обновления, которая автоматически получает memberID того, на который была нажата кнопка.

Я уже написал код в сервлете, чтобы отобразить представление всех участников, с каждым из их идентификаторов, связанных со страницей с именем UpdateParty.jsp, однако я хочу, чтобы идентификатор, по которому щелкали, передавался вместе с запросите его использование в файле UpdateParty.jsp в качестве параметра, чтобы пользователю не нужно было его вводить.

Я использую postgres для моего SQL, если кто-то хочет знать.

Код сервлета, который формирует список всех членов партии:

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

Код для 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>

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Вот что-то более вменяемое для вас.Он использует язык выражений JSTL и библиотеку тегов.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>

    <c:if test="${!empty members}">
        <table>
            <tr><th>Member ID</th><th>Firstname</th><th>Second Name</th><th>Associated User</th></tr>
            <c:forEach items="${members}" var="member">
                <tr><td>${member.memberID}</td>
                <c:url value="link" value="UpdateParty.jsp">
                    <c:param name="memberId" value="${member.memberID}"/>
                </c:url>
                <td><a href="${link}">${member.partyFirstname}</a></td>
                <td>${member.partySurname}</td>
                <td>${member.username}</td>
                </tr>
            </c:forEach>
        </table>
    </c:if>
    <c:if test="${empty members}">
        <form action="PartyServlet" method="get">
            <input type="hidden" name="listallmembers" value="1" /><br />
            <input type="submit" value="Show all Members" />
        </form>
    </c:if>
</body>
</html>
0 голосов
/ 02 апреля 2012

Если вы хотите, чтобы идентификатор был доступен в файле UpdateParty.jsp, ваша ссылка должна выглядеть следующим образом:

<a href='UpdateParty.jsp?id=" + l.get(i).getMemberID() + "'>"+ l.get(i).getPartyFirstname()"</a>

Таким образом, свойство id будет доступно в JSP в качестве параметра запроса.

В любом случае, я рекомендую вам не использовать скриптлет в вашем JSP, а вместо этого указывать непосредственно на точку JSP для контроллера / действия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...