2012-03-26 62 views
9

我想基於請求參數自動填充下拉列表。我對JSP很新,所以請原諒我這個簡單的問題。Request.getParameter與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

你宣佈你的標籤庫('<%@標籤庫的URI = 「http://java.sun.com/jsp/jstl/core」 PREFIX = 「C」 %>')? – 2012-03-26 13:36:51

+0

是的,我其實。好的回答低於 – Fraser 2012-03-26 13:43:22

回答

12

request.getParameter()

由於不會通過EL解決。請求參數可以使用隱式變量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> 
+0

謝謝。 JSP非常新,所以不知道。 – Fraser 2012-03-26 13:42:50

+1

2012-03-26 13:43:56

+0

是啊!爲什麼''而不是'$ {english}'? – tusar 2012-03-26 13:48:55

3

另一種方式:

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

    English 
</option> 

確保您已經添加C-標記庫URI的JSP的頂部。

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