如果我有以下网址怎么办: servlet.jsp?myparam=myvalue
这两个EL应该返回输出"myvalue",但实际上我不明白为什么?:
${param.values["myparam"]["0"]}
${param.values.myparam[0]}
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 20
你是从哪里获得这些信息的?这在标准JSP 2.1 EL中不起作用.正确的语法是:
${param["myparam"]}
${param.myparam}
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,也允许单引号,实际上更优选.
${param['myparam']}
Run Code Online (Sandbox Code Playgroud)
它甚至可以是任何范围内的另一个EL变量:
${param[myparam]}
Run Code Online (Sandbox Code Playgroud)
实际上,${param}指的是Map<String, String>只有来自数组的第一个参数值.在理论上,如果这是一个Map<String, String[]>和Map类有一个getValues()方法,那么你的语法应该工作.但它没有,它只有一个values()方法.然后你最好的选择是使用${paramValues}而不是指的是Map<String, String[]>:
${paramValues['myparam'][0]}
${paramValues.myparam[0]}
Run Code Online (Sandbox Code Playgroud)
或HttpServletRequest#getParameterMap()直接访问:
${pageContext.request.parameterMap['myparam'][0]}
${pageContext.request.parameterMap.myparam[0]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15274 次 |
| 最近记录: |