2012-03-26 62 views
9

Estoy intentando rellenar automáticamente una lista desplegable basada en un parámetro de solicitud. Soy bastante nuevo en JSP, así que discúlpame por la simple pregunta.Request.getParameter con JSP

El siguiente trabaja muy bien y muestra la alerta correcta:

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

así que sé lo que estoy tratando de hacer es bastante fácil. Pero cuando agrego esta misma lógica con mi instrucción de selección usando:

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

consigo una excepción diciendo "El getParameter función debe utilizarse con un prefijo cuando un nombre por defecto no está especificado".

Estoy un poco confundido en cuanto a por qué esto no funciona aquí ...

Gracias de antemano

+0

que han declarado su taglib ('<% @ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>')? –

+0

Sí, tuve realmente. Buena respuesta debajo de – Fraser

Respuesta

12

request.getParameter() no resueltos por EL. Se puede acceder al parámetro de solicitud utilizando la variable implícita param. es decir, ${param.lang}

Cambie este

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

a

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

Gracias. Muy nuevo para JSP, así que no lo sabía. – Fraser

+1

¿Cuál es el uso de

+0

sí! ¿Por qué '' en lugar de '$ {english}'? – tusar

3

de otra manera:

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

    English 
</option> 

Hacer c-taglibs seguro de que ha agregado URI en la parte superior de la página JSP.

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