2012-03-26 6 views
9

Ich versuche, eine Dropdownliste basierend auf einem Anforderungsparameter automatisch aufzufüllen. Ich bin ziemlich neu in JSP, also verzeih mir die einfache Frage.Request.getParameter mit JSP

Die folgende funktioniert gut und zeigt die Warnung richtig:

alert('<%=request.getParameter("lang") %>'); 

So weiß ich, was ich versuche, einfach genug zu tun ist. Aber wenn ich diese Logik in mit meiner select-Anweisung hinzufügen, mit:

<option <c:if test="${request.getParameter(\"lang\")=='En'}"> selected="selected" </c:if> value="<c:out value="${english}"/>">English</option> 

Ich erhalte eine Ausnahme sagen: „Die Funktion getParameter muss mit einem Präfix verwendet werden, wenn eine Standard-Namespace nicht angegeben“.

Ich bin ein wenig verwirrt, warum das hier nicht funktioniert ...

Vielen Dank im Voraus

+0

haben erklärt, Sie taglib ('<% @ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>')? –

+0

Ja, hatte ich eigentlich. Gute Antwort unter – Fraser

Antwort

12

request.getParameter() nicht von EL gelöst. Auf den Anforderungsparameter kann über die implizite Variable param zugegriffen werden. das heißt, ${param.lang}

Ändern Sie diese

<option <c:if test="${request.getParameter(\"lang\")=='En'}"> selected="selected" </c:if> value="<c:out value="${english}"/>">English</option> 

zu

<option <c:if test="${param.lang == 'En'}"> selected="selected" </c:if> value="${english}">English</option> 
+0

Danke. Sehr neu für JSP, also wusste ich das nicht. – Fraser

+1

Was ist die Verwendung von

+0

ja! Warum '' anstelle von '$ {english}'? – tusar

3

eine andere Art und Weise:

<option <c:if test='${param[lang] == "En"}'> selected="selected" </c:if> 
    value="${english}"> 

    English 
</option> 

sicher, dass Sie hinzugefügt c-Taglibs URI oben auf der JSP haben.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>