プロが教えるわが家の防犯対策術!

初歩的な質問ですいません。
以下のような内容をjspに記載してDBから取得した値を順番に出力しようとしたのですが
エラーも出ないで空白で表示されてしまいます。
因みに「[a]」に数値をいれて「[0]」などを入れて表示をさせようとするとSQLで
取得した最初のデータを2回表示していますのでDBから値は取れていると思います。
<%int a =0;%>
<c:forEach var ="employee_date_list_for" items ="{${list}">
<tr>
<td></td>
<td><c:out value="${list[a].abbreviation}"/></td>
<td><c:out value="${list[a].department}"/></td>
<td><c:out value="${list[a].name}"/></td>
<td><c:out value="${list[a].name_hiragana}"/></td>
<td><c:out value="${list[a].age}"/></td>
<td><c:out value="${list[a].business_manager}"/></td>
<td><c:out value="${list[a].enter_date}"/></td>
<td><c:out value="${list[a].commissioning_status}"/></td>

<td><form action ="/example/syosai_Servlet" method="post">
<input type = "submit" value = "詳細"></form></td>
<td><form action ="/example/delete_Servlet" method="post">
<input type = "submit" value = "削除"></form></td>
</tr>
<%a++; %>
</c:forEach>

全体の流れとしてはsubmitを押下後、servletに飛んでLogicとBEANをimport→
logicにてDAOをimport→DAOにてBEANをimportSQLを流してBEANと連携Logicにreturn→
Logicにてservletに値を渡してservletにてスコープに保存→
jspにてEL式を使用して表示といったような流れを汲んでいるつもりです。

質問者からの補足コメント

  • うーん・・・

    org.apache.jasper.JasperException: An exception occurred processing JSP page /employeeList.jsp at line 41

    38: <c:forEach var ="items" items ="{${list}" >
    39: <tr>
    40: <td></td>
    41: <td><c:out value="${items.abbreviation}"/></td>

    原因
    javax.el.PropertyNotFoundException: Property 'abbreviation' not found on type java.lang.String
    javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290)

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/04/10 09:23

A 回答 (3件)

例えば以下のようにしてみてはどうでしょうか



<c:forEach var ="employee_date_list_for" items ="{${list}" varStatus="loop">
<tr>
<td></td>
<td><c:out value="${list[loop.count-1].abbreviation}"/></td>
<td><c:out value="${list[loop.count-1].department}"/></td>
<td><c:out value="${list[loop.count-1].name}"/></td>
<td><c:out value="${list[loop.count-1].name_hiragana}"/></td>
<td><c:out value="${list[loop.count-1].age}"/></td>
<td><c:out value="${list[loop.count-1].business_manager}"/></td>
<td><c:out value="${list[loop.count-1].enter_date}"/></td>
<td><c:out value="${list[loop.count-1].commissioning_status}"/></td>

<td><form action ="/example/syosai_Servlet" method="post">
<input type = "submit" value = "詳細"></form></td>
<td><form action ="/example/delete_Servlet" method="post">
<input type = "submit" value = "削除"></form></td>
</tr>
<%a++; %>
</c:forEach>
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘の通りに修正したら順番に表示されるように
なりました。m(_ _)m

お礼日時:2017/04/07 07:49

因みにスクリプトレットのJava変数とelの扱えるコンテキスト変数は


別物。変換するには c:set タグを利用します。
    • good
    • 0

><c:forEach var ="employee_date_list_for" items ="{${list}">



普通
<c:forEach var ="item" items ="${list}">

って書いて、項目値の参照はelで ${item.age}

とするだけですよ。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています