Reputation: 26274
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,
Which is wrong. I specifically renamed the columns in the query. I don't know how it found the original field name. So how can I access the value of user.name? ${row.userName}
doesn't work.
I'm using JSTL jstl-1.2.2.
Upvotes: 4
Views: 2138
Reputation: 62851
Not sure if this will help, but I've read that using aliases will not always work correctly. A possible alternative I've seen:
<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.
Upvotes: 6