Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
348 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...