tags:

views:

29

answers:

1

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]}
+2  A: 

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]}
BalusC
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.
coffy
You're welcome.
BalusC