4

これはなぜか、

    <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 を使用しています。

4

1 に答える 1

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>

お役に立てれば。幸運を。

于 2013-01-21T03:19:38.013 に答える