Wie erhalte ich in JSP Parameter von der URL?
Zum Beispiel habe ich eine URL, die www.somesite.com/Transaction_List.jsp?accountID=5
ich erhalten möchte. 5.
Gibt es ein request.getAttribute ("accountID") wie für Sitzungen oder ähnliches?
Wie erhalte ich in JSP Parameter von der URL?
Zum Beispiel habe ich eine URL, die www.somesite.com/Transaction_List.jsp?accountID=5
ich erhalten möchte. 5.
Gibt es ein request.getAttribute ("accountID") wie für Sitzungen oder ähnliches?
Antworten:
In einer GET-Anforderung werden die Anforderungsparameter aus der Abfragezeichenfolge übernommen (die Daten folgen dem Fragezeichen auf der URL). Beispielsweise enthält die URL http://hostname.com?p1=v1&p2=v2 zwei Anforderungsparameter - - p1 und p2. In einer POST-Anforderung werden die Anforderungsparameter sowohl aus der Abfragezeichenfolge als auch aus den gesendeten Daten übernommen, die im Hauptteil der Anforderung codiert sind.
Dieses Beispiel zeigt, wie der Wert eines Anforderungsparameters in die generierte Ausgabe aufgenommen wird:
Hello <b><%= request.getParameter("name") %></b>!
Wenn auf die Seite mit der URL zugegriffen wurde:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
Die resultierende Ausgabe wäre:
Hello <b>John Smith</b>!
Wenn in der Abfragezeichenfolge kein Name angegeben ist, lautet die Ausgabe:
Hello <b>null</b>!
In diesem Beispiel wird der Wert eines Abfrageparameters in einem Scriptlet verwendet:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
Über die impliziten Objekte der Unified Expression Language schreibt das Java EE 5 Tutorial :
Implizite Objekte
Die JSP-Ausdruckssprache definiert eine Reihe impliziter Objekte:
pageContext
: Der Kontext für die JSP-Seite. Bietet Zugriff auf verschiedene Objekte, einschließlich:
servletContext
: Der Kontext für das Servlet der JSP-Seite und alle in derselben Anwendung enthaltenen Webkomponenten. Siehe Zugreifen auf den Webkontext.session
: Das Sitzungsobjekt für den Client. Siehe Verwalten des Clientstatus.request
: Die Anforderung, die die Ausführung der JSP-Seite auslöst. Siehe Informationen aus Anfragen abrufen .response
: Die von der JSP-Seite zurückgegebene Antwort. Siehe Erstellen von Antworten.- Darüber hinaus stehen mehrere implizite Objekte zur Verfügung, die einen einfachen Zugriff auf die folgenden Objekte ermöglichen:
param
: Ordnet einen Anforderungsparameternamen einem einzelnen Wert zuparamValues
: Ordnet einen Anforderungsparameternamen einem Array von Werten zuheader
: Ordnet einen Anforderungsheadernamen einem einzelnen Wert zuheaderValues
: Ordnet einen Anforderungsheadernamen einem Array von Werten zucookie
: Ordnet einen Cookie-Namen einem einzelnen Cookie zuinitParam
: Ordnet einen Kontextinitialisierungsparameternamen einem einzelnen Wert zu- Schließlich gibt es Objekte, die den Zugriff auf die verschiedenen Bereichsvariablen ermöglichen, die unter Verwenden von Bereichsobjekten beschrieben sind.
pageScope
: Ordnet seitenbezogene Variablennamen ihren Werten zurequestScope
: Ordnet Variablennamen mit Anforderungsbereich ihren Werten zusessionScope
: Ordnet sitzungsbezogene Variablennamen ihren Werten zuapplicationScope
: Ordnet anwendungsbezogene Variablennamen ihren Werten zu
Die interessanten Teile sind fett gedruckt :)
Um Ihre Frage zu beantworten, sollten Sie in der Lage sein, wie folgt darauf zuzugreifen (mit EL):
${param.accountID}
Oder mithilfe von JSP-Scriptlets (nicht empfohlen):
<%
String accountId = request.getParameter("accountID");
%>
Verwenden Sie EL (JSP Expression Language):
${param.accountID}
<c:out value="${param.accountID}" />
.
Wenn ich hier einen Kommentar hinzufügen darf ...
<c:out value="${param.accountID}"></c:out>
funktioniert bei mir nicht (es gibt eine 0 aus).
Stattdessen funktioniert dies:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
ist was du suchst. Dies ist Teil der Java-Servlet-API. Weitere Informationen finden Sie unter http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html .
Beispiel: Sie wollten den Betreff-Datensatz mit seiner Betreff-ID löschen
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
und der Parameter wird für die Eingabe in Ihre Abfrage verwendet
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
Zu diesem Zweck URL
gibt es request.getParameter
in Java einen Methodenaufruf , wenn Sie eine Zahl hier einfügen möchten int
, ähnlich für einen Zeichenfolgenwert, in den umgewandelt wird string
. Kopieren Sie für Ihre Anforderungen einfach die folgende Zeile in der Seite.
int accountId =(int)request.getParameter("accountID");
Sie können diesen Wert jetzt accountId
auf der gesamten Seite aufrufen.
Hier accountId
ist der Name des Parameters. Sie können damit auch mehrere Parameter abrufen, dies funktioniert jedoch nicht. Es funktioniert nur mit der GET
Methode, wenn Sie auf POST
Anfrage klicken, dann ist dies ein Fehler.
Hoffe das ist hilfreich.