如何使用JSTL sql:query访问重复的列名?

时间:2013-01-21 02:59:38

标签: java sql jsp jstl

出于某种原因,这个

    <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>

生成

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

哪个错了。我专门重命名了查询中的列。我不知道它是如何找到原始字段名称的。那么如何访问user.name的值呢? ${row.userName}无效。

我正在使用JSTL jstl-1.2.2。

1 个答案:

答案 0 :(得分:6)

不确定这是否有帮助,但我已经读过使用别名并不总能正常工作。我见过一个可能的选择:

 <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>

希望这会有所帮助。祝你好运。