wake-up-neo.net

So rufen Sie mit JSP Parameter von der URL ab

Wie erhalte ich in JSP Parameter aus der URL?

Zum Beispiel habe ich eine URL www.somesite.com/Transaction_List.jsp?accountID=5
Ich möchte die 5 bekommen.

Gibt es ein request.getAttribute ("accountID") wie es es für Sessions oder ähnliches gibt?

180
Josh Curren

In einer GET-Anforderung werden die Anforderungsparameter aus der Abfragezeichenfolge (den Daten, die auf das Fragezeichen in der URL folgen) übernommen. Beispielsweise enthält die URL http://hostname.com?p1=v1&p2=v2 zwei Anforderungsparameter - - p1 und p2. In einer Anforderung POST) werden die Anforderungsparameter sowohl aus der Abfragezeichenfolge als auch aus den veröffentlichten Daten entnommen, die im Hauptteil der Anforderung codiert sind.

In diesem Beispiel wird veranschaulicht, wie der Wert eines Anforderungsparameters in die generierte Ausgabe einbezogen wird:

Hello <b><%= request.getParameter("name") %></b>!

Wenn die Seite mit der URL aufgerufen 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>!");
    }
%>
170
Sajad Bahmani

Über Implizite Objekte der nified Expression Language schreibt Java EE 5 Tutorial :

Implizite Objekte

Die JSP-Ausdruckssprache definiert eine Reihe impliziter Objekte:

  • pageContext: Der Kontext für die JSP-Seite. Ermöglicht den Zugriff auf verschiedene Objekte, darunter:
    • 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 zu
    • paramValues: Ordnet einen Anforderungsparameternamen einem Array von Werten zu
    • header: Ordnet einen Anforderungsheadernamen einem einzelnen Wert zu
    • headerValues: Ordnet einen Anforderungsheadernamen einem Array von Werten zu
    • cookie: Ordnet einen Cookie-Namen einem einzelnen Cookie zu
    • initParam: 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 zu
    • requestScope: Ordnet Variablennamen im Anforderungsbereich ihren Werten zu
    • sessionScope: Ordnet sitzungsbezogene Variablennamen ihren Werten zu
    • applicationScope: Ordnet anwendungsspezifische 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 mit JSP-Scriptlets (nicht empfohlen):

<%
    String accountId = request.getParameter("accountID");
%>
229
Pascal Thivent

Verwenden Sie EL (JSP Expression Language):

${param.accountID}

72
Taylor Leese

Wenn ich hier einen Kommentar hinzufügen darf ...

<c:out value="${param.accountID}"></c:out>

funktioniert bei mir nicht (es wird eine 0 ausgegeben).

Stattdessen funktioniert dies:

<c:out value="${param['accountID']}"></c:out>

20
Léa Massiot

request.getParameter("accountID") ist das, wonach Sie suchen. Dies ist Teil der Java Servlet-API. Siehe http://Java.Sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html für weitere Informationen.

5
user229916
String accountID = request.getParameter("accountID");
4
johannes

www.somesite.com/Transaction_List.jsp?accountID=5

Für dieses URL gibt es einen Methodenaufruf request.getParameter in Java, wenn Sie eine Zahl hier in int umwandeln möchten, ähnlich wie bei einem in string umwandelten Zeichenfolgewert unter der Zeile auf der Seite,

int  accountId =(int)request.getParameter("accountID");

sie können diesen Wert jetzt mit accountId auf der ganzen Seite aufrufen.

hier accountId ist der Name des Parameters, mit dem Sie auch mehr als einen Parameter erhalten können, aber das funktioniert nicht. Es funktioniert nur mit der Methode GET, wenn Sie auf die Anforderung POST klicken. Dann ist dies ein Fehler.

Hoffe das ist hilfreich.

0
jay Patel

beispiel Sie wollten den Betreffdatensatz mit seiner subject_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);
}
0
Ainz Ooal Gown