How to access duplicate column names using JSTL sql: query?

For some reason this

<sql:query dataSource="${ds}" sql="select user.id, user.name as userName, city, state, country, country.name as countryName, latitude, longitude, ip, last_visit from user, country where user.country = country.id order by last_visit desc limit 100" var="result"/> <c:forEach var="col" items="${result.columnNames}"> ${col}, </c:forEach> 

produces

 id, name, city, state, country, name, latitude, longitude, ip, last_visit, 

It is not right. I specifically renamed the columns in the query. I do not know how he found the original field name. So how can I access the value of user.name? ${row.userName} does not work.

I am using JSTL jstl-1.2.2.

+4
source share
1 answer

Not sure if this will help, but I read that using aliases will not always work correctly. A possible alternative that I saw:

  <sql:query dataSource="${ds}" sql="select user.id, concat(user.name,'') as userName, city, state, country, concat(country.name,'') as countryName, latitude, longitude, ip, last_visit from user, country where user.country = country.id order by last_visit desc limit 100" var="result"/> <c:forEach var="col" items="${result.columnNames}"> ${col}, </c:forEach> 

Hope this helps. Good luck.

+6
source

All Articles