param : implicit EL (Expression Language) object in JSP
Asked Answered
S

1

7

What if I have URL like: servlet.jsp?myparam=myvalue

These 2 ELs should return output "myvalue" , but I actually don't understand why?:

${param.values["myparam"]["0"]}
${param.values.myparam[0]}
Shaman answered 15/6, 2010 at 14:49 Comment(0)
Z
21

Where did you get this information from? This won't work in standard JSP 2.1 EL. The correct syntax would be:

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

In the first example, singlequotes are also allowed and actually more preferred.

${param['myparam']}

It can even be another EL variable in any scope:

${param[myparam]}

Actually, the ${param} refers to a Map<String, String> with only the first param value from the array. In theory, if it was a Map<String, String[]> and the Map class had a getValues() method, then your syntax should work. But it doesn't have, it only has a values() method. Your best bet would then be using ${paramValues} instead which refers to a Map<String, String[]>:

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

or accessing the HttpServletRequest#getParameterMap() directly:

${pageContext.request.parameterMap['myparam'][0]}
${pageContext.request.parameterMap.myparam[0]}
Zielinski answered 15/6, 2010 at 15:10 Comment(1)
Thanks for the answer. I thought so. This is actually one "correct" answer from uCertify prepEngine software for SCWCD. I just wanted to be sure and hear some opinions.Shaman

© 2022 - 2024 — McMap. All rights reserved.