2012-03-26 8 views
9

リクエストパラメータに基づいてドロップダウンリストを自動入力しようとしています。私はJSPにかなり新しいので、簡単な質問のために私を許してください。Request.getParameter with 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

は、あなたのタグライブラリ( 'ます。<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" 接頭辞= "C" %>を')宣言しましたか? –

+0

はい、私は実際に持っていました。良い答えは – Fraser

答えて

12

request.getParameter()

おかげでELによって解決しません。要求パラメータは、暗黙の変数paramを使用してアクセスできます。すなわち、

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

ありがとう。 JSPがとても新しく、そのことを知らなかった。 – Fraser

+1

+0

ええ!なぜ$ {english}の代わりに ''を使うのですか? – tusar

3

${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> 

あなたがJSPの上のc-taglibのURIを追加したことを確認してください。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
関連する問題