This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes unable to understand paramValues implicit Object Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "unable to understand paramValues implicit Object" Watch "unable to understand paramValues implicit Object" New topic
Author

unable to understand paramValues implicit Object

Mohit G Gupta
Ranch Hand

Joined: May 18, 2010
Posts: 634


index.jsp



param.jsp contains
code from
jstl 1.0 specification



Here ,paramValues is map that contains multiple key value pair.

then,first time the loop executes aParam.key gives key of first element of Map
1.why is foreach required ?
2.can we have the following code instead of the above one ?



i got the following output .


languages:
[Ljava.lang.String;@1124746:
lastName:
[Ljava.lang.String;@105691e:
firstName:
[Ljava.lang.String;@383118:

I am unable to get how paramValues stores the request parameters .
I thought aParam.Key would give the Key and aParam.value would give the value .


OCPJP 6.0 93%
OCPJWCD 5.0 98%
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18541
    
    8

Well, no. Since a request can include more than one parameter with the same name, the request contains an array of strings for the value of each parameter. That's what you are seeing in that debugging output.
Frits Walraven
Creator of Enthuware JWS+ V6
Bartender

Joined: Apr 07, 2010
Posts: 1665
    
  25

What Paul is saying is correct and I just want to add some explanation.

  • paramValues is a Map of all ServletRequest parameter names and all values, like you get when you do this String[] values = request.getParameterValues(String paramName), so for every paramName there is a String[] containing the values
  • If you have a querystring like this: URL?myParam="first"&myParam="second" you can get to the individual entries like this:

  • ${paramValues.myParam[0]} -> first
    ${paramValues.myParam[1]} -> second

    Regards,
    Frits
     
    It is sorta covered in the JavaRanch Style Guide.
     
    subject: unable to understand paramValues implicit Object