2 Stimmen

Übergabe von Werten von einer JSP-Seite an eine andere JSP-Seite

Ich rufe Werte aus der Datenbank in eine Tabelle in JSP ab (in einer Spalte).

Ich möchte diesen Wert in eine andere Tabelle in der Datenbank einfügen. Um das zu tun, verwende ich eine andere JSP-Tabelle, um diesen Wert in die Datenbank einzufügen, und rufe diese JSP-Seite in der Registerkarte "Formularaktion" meiner vorherigen JSP-Seite auf.

Ich benutze request.getParameter() Methode, um die Werte in meiner ersten JSP-Seite auf die neue JSP-Seite zu übertragen, aber ich konnte die Werte nicht mit request.getParameter() .

Wie kann ich das Problem lösen?

3voto

Bozho Punkte 570413

Beim Öffnen der 2. JSP müssen Sie die entsprechenden Parameter (eine ID, nehme ich an) als GET-Parameter an die zweite Seite übergeben. Das heißt, der Link in Ihrer Tabelle sollte wie folgt aussehen:

<a href="edit.jsp?itemId=${item.id}" />

Dann können Sie diesen Parameter mit request.getParameter("itemId") auf der zweiten Seite.

(wenn Sie nicht JSTL und EL verwenden, muss die ${..} wird ersetzt durch <%= .. %> )

1voto

BalusC Punkte 1034465

Sie müssen die Werte nur als Anfrageparameter an die nächste Anfrage übergeben. Auf diese Weise sind sie in der nächsten Anfrage als, nun ja, Anfrageparameter verfügbar.

Wenn die Anfrage von Seite A zu Seite B über einen Link aufgerufen wird, müssen Sie die Parameter in der URL definieren:

<a href="update.jsp?userid=${user.id}&fieldid=${field.id}">update</a>

Auf diese Weise werden sie wie erwartet verfügbar sein bis request.getParameter() en update.jsp .

Wenn die Anfrage von Seite A zu Seite B zufällig von einem POST Formular, dann müssen Sie die Parameter als Eingabefelder des Formulars definieren. Wenn Sie sie aus der Ansicht ausblenden wollen, dann verwenden Sie einfach <input type="hidden"> .

<form method="post" action="update.jsp">
    ...
    <input type="hidden" name="userid" value="${user.id}">
    <input type="hidden" name="fieldid" value="${field.id}">
</form>

Auf diese Weise werden sie wie erwartet verfügbar sein bis request.getParameter() en update.jsp .

0voto

Gthompson83 Punkte 1099

Wenn Sie immer noch Probleme bei der Übergabe von Werten mit Ihrem Formular und request.getParameter() haben, gibt es eine weitere Methode, die Sie ausprobieren können.

Setzen Sie in Ihrem Code jedes Wertepaar auf eine Sitzungsvariable.

session.setAttribute("userId", userid);
session.setAttribute("fieldId", fieldid);

Diese Werte sind nun von jeder jsp aus verfügbar, solange Ihre Sitzung noch aktiv ist.

Verwendung:

int userid = session.getAttribute("userId");
int fieldid = session.getAttribute("fieldId");

um Ihre Werte auf der Seite update.jsp abzurufen. Denken Sie daran, alle Sitzungsvariablen zu entfernen, wenn sie nicht mehr verwendet werden, da sie für die Dauer der Benutzersitzung im Speicher bleiben.

0voto

matt burns Punkte 23443

Sie sollten Ihre Url mit dem url-Tag aufbauen:

<c:url value="edit.jsp" var="url">
    <c:param name="itemId" value="${item.id}"/>
</c:url>
<a href="${url}">edit</a>

Damit erhalten Sie kostenloses URL-Rewriting (ggf. jsessionid anhängen) und URL-Codierung Ihrer Parameter.

Eine Lösung, die weder JSTL noch EL verwendet, sollte als Sonderfall betrachtet werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X