param:JSP中的隐式EL(表达式语言)对象

时间:2010-06-15 14:49:44

标签: jsp el

如果我的网址如下:servlet.jsp?myparam=myvalue

,该怎么办?

这两个EL应该返回输出“myvalue”,但实际上我不明白为什么?:

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

1 个答案:

答案 0 :(得分:20)

您从哪里获得此信息?这在标准JSP 2.1 EL中不起作用。正确的语法是:

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

在第一个例子中,也允许单引号,实际上更受欢迎。

${param['myparam']}

它甚至可以是任何范围内的另一个EL变量:

${param[myparam]}

实际上,${param}指的是Map<String, String>只有数组中的第一个参数值。在理论中,如果它是Map<String, String[]>Map类具有getValues()方法,则您的语法应该有效。但它没有,它只有values()方法。您最好的选择是使用${paramValues}代替Map<String, String[]>

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

或直接访问HttpServletRequest#getParameterMap()

${pageContext.request.parameterMap['myparam'][0]}
${pageContext.request.parameterMap.myparam[0]}