2012-05-11 33 views
1

私はJSTL SQLタグライブラリを使用して、JSP内から小さなSQLクエリを実行しています。ELのJSPからgetColumnNamesにアクセスするには?

私は普通rowsByIndexを使用して、返されたコレクションを反復処理によってELでのクエリ結果を取得:

<c:forEach var="row" items="${myQuery.rowsByIndex}"> 
    <p>${row[0]}, ${row[1]}, ${row[2]}, ${row[3]}</p> 
</c:forEach>> 

私は、列名に似た何かをしたいです。

私は結果インターフェースのメソッドがあることを参照してください。

public String[] getColumnNames(); 

と私はELからこれをアクセスする方法を把握しようとしているが。私のような何かやろうとしている

:それはプロパティにアクセスすることになると

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 
... 
    <table> 
    <tr> 
     <c:forEach var="columnName" items="${helloQuery.getColumnNames}"> 
      <th><c:out value="${columnName}" /></th> 
     </c:forEach> 
    <tr> 
    </table> 
... 

しかし、喜びを...

+1

質問を入力していたときに答えが見つかりました。 私はそれを入力する努力を無駄にしていないと思うし、多分それは誰かに恩恵を受けるだろう。 (私の評判はこれをまだ投稿するのに十分ではないので、コメントとして追加しています) これは次のように行われます: ' get'が去ります。 私も、資本金が取り除かれているのが不思議です... – philipstaffordwood

答えて

1

ELJavabeans specificationとその命名規則に依存しています。基本的にはプロパティ名を指定する必要があります(仮想でも)。ELは値を返す必要がある場合はgetter呼び出しに、値を設定する必要がある場合はセッター呼び出しに変換します(JSF #{}構文のみしかし)。

したがって、${helloQuery.getColumnNames}は、${helloQuery}で表されるクラスでgetGetColumnNames()メソッドを呼び出すことを基本的に試みています。しかし、何もないので、PropertyNotFoundExceptionになります。 getColumnNames()メソッドを呼び出すには、${helloQuery.columnNames}に変更する必要があります。

関連する問題