2013-01-21 49 views
4

出於某種原因,這如何使用JSTL sql訪問重複的列名稱?

<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的值呢?​​不起作用。

我正在使用JSTL jstl-1.2.2。

+0

這實際工作,但我不樂意了:' \t \t \t $ {行[1]} $ {rows [5]}
\t \t' – Chloe

回答

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> 

希望這會有所幫助。祝你好運。

+0

天才!這一定是一個錯誤! – Chloe

+0

爲什麼不解決問題?一般來說Java是如此重要,Java EE也是如此。 – Timo