2009-07-27 7 views
0

J'ai une requête JSP MySQL

JSP DataBase Résultat Non Affichage correctement

<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 

Cela renvoie quatre colonnes. J'ai essayé de renommer les colonnes dans les résultats avec AS, mais lorsque vous parcourez les résultats

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

Lors du chargement de la page, les colonnes dbESTid, LibName et Desc sont vides.

J'ai demandé ${libraries.columnNames} et découvert l'instruction AS dans ma requête n'a pas renommé les colonnes, ils sont tous encore LAValue. ${libraryResults.LAValue} renvoie uniquement Desc. Toute aide sur comment je peux remplir cette table?

Répondre

2

Vous n'avez pas besoin de guillemets doubles autour des alias de colonne dans votre SQL - cela peut être source de confusion pour le pilote jdbc. En outre, pourquoi l'étiquette de rupture dans le <sql-query>?

Le crénelage de colonne doit être. Toutefois, si le problème persiste une solution de contournement possible consiste à itérer sur des colonnes dans chaque ligne:

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

Cela dit, la vraie solution est, bien sûr, d'utiliser un framework MVC pour que vous n'avez pas Intégrez vos requêtes dans JSP.