我正在尝试根据请求参数自动填充下拉列表。我对JSP很新,请原谅我这个简单的问题。
以下工作正常并正确显示警报:
alert('<%=request.getParameter("lang") %>');
所以我知道我要做的事情很容易。但是当我使用:
在我的select语句中添加相同的逻辑时<option <c:if test="${request.getParameter(\"lang\")=='En'}"> selected="selected" </c:if> value="<c:out value="${english}"/>">English</option>
我得到一个例外,“当未指定默认命名空间时,函数getParameter必须与前缀一起使用”。
我有点困惑为什么这在这里不起作用......
提前致谢
答案 0 :(得分:12)
request.getParameter()
。可以使用隐式变量param
访问请求参数。即,${param.lang}
更改此
<option <c:if test="${request.getParameter(\"lang\")=='En'}"> selected="selected" </c:if> value="<c:out value="${english}"/>">English</option>
到
<option <c:if test="${param.lang == 'En'}"> selected="selected" </c:if> value="${english}">English</option>
答案 1 :(得分:3)
<option <c:if test='${param[lang] == "En"}'> selected="selected" </c:if>
value="${english}">
English
</option>
确保在JSP之上添加了c-taglibs URI。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>