7

次のようなURLがある場合はどうなりますか?servlet.jsp?myparam=myvalue

これらの2つのELは、出力「myvalue」を返す必要がありますが、実際には理由がわかりません。

${param.values["myparam"]["0"]}
${param.values.myparam[0]}
4

1 に答える 1

21

この情報はどこから入手しましたか?これは、標準の JSP 2.1 EL では機能しません。正しい構文は次のとおりです。

${param["myparam"]}
${param.myparam}

最初の例では、一重引用符も使用できますが、実際にはより優先されます。

${param['myparam']}

任意のスコープ内の別の EL 変数にすることもできます。

${param[myparam]}

実際には、は配列の最初のパラメーター値のみ${param}を持つ を参照します。理論的Map<String, String>には、それが で、クラスにメソッドがある場合、構文は機能するはずです。しかし、それはありません。方法があるだけです。あなたの最善の策は、次を参照する代わりに使用することです:Map<String, String[]>MapgetValues()values()${paramValues}Map<String, String[]>

${paramValues['myparam'][0]}
${paramValues.myparam[0]}

または直接アクセスHttpServletRequest#getParameterMap()する:

${pageContext.request.parameterMap['myparam'][0]}
${pageContext.request.parameterMap.myparam[0]}
于 2010-06-15T15:10:42.273 に答える