2009-07-27 5 views
0

나는이 네 개의 열을 반환

JSP 데이터베이스 결과 제대로

<sql:query var="libraries" dataSource="jdbc/ArabiTagOnline"><br> 
    SELECT l.LibraryId, v1.LAvalue AS "dbESTid", v2.LAValue AS "LibName", v3.LAValue AS "Desc" 
    FROM ((Library l LEFT JOIN LibAttrValue v1 ON l.LibraryId = v1.LibraryId AND v1.AttributeId = 1) 
    LEFT JOIN LibAttrValue v2 ON l.LibraryId = v2.LibraryId AND (v2.AttributeId = 2 OR v2.AttributeId IS NULL)) 
    LEFT JOIN LibAttrValue v3 ON l.LibraryId = v3.LibraryId AND (v3.AttributeId = 6 OR v3.AttributeId IS NULL) 
<\sql:query 

는 JSP MySQL의 쿼리를합니다. 나는 AS와 결과의 열 이름을 변경하려고했지만 페이지를로드 할 때 결과

<c:forEach var="libraryResults" items="${libraries.rows}"> 
    <tr> 
     <td>${libraryResults.Libraryid}</td> 
     <td>${libraryResults.dbESTid}</td> 
     <td>${libraryResults.LibName}</td> 
     <td>${libraryResults.Desc}</td> 
    </tr> 
</c:forEach> 

반복 할 때, 열 dbESTid, LibNameDesc는 비어 있습니다.

나는 ${libraries.columnNames}을 물었고 내 쿼리에서 AS 문이 열의 이름을 바꾸지 않았 음을 알았습니다. 그들은 여전히 ​​모두 LAValue입니다. ${libraryResults.LAValue} 만 Desc를 반환합니다. 이 테이블을 어떻게 채울 수 있습니까?

답변

2

SQL에서 열 별칭에 대해 큰 따옴표를 사용하지 않아도되므로 jdbc 드라이버를 혼동시킬 수 있습니다. 또한 <sql-query> 내의 중단 태그가 필요한 이유는 무엇입니까?

열 앨리어싱 이어야합니다. 문제가 하나의 가능한 해결 방법을 계속하는 경우에는, 각 행 내에서 열을 반복하는 것입니다 말했다

<c:forEach var="libraryResults" items="${libraries.rows}"> 
    <tr> 
    <c:forEach var="column" items="${libraryResults}"> 
     <td><c:out value="${column.value}"/></td> 
    </c:forEach> 
    </tr> 
</c:forEach> 

, 당신이하지 않아도 물론, MVC 프레임 워크를 사용하는 것입니다 실제 솔루션 쿼리를 JSP에 임베드합니다.