2016-09-16 6 views
0

JSPテーブルにHashMapの内容を取り込もうとしていますが、JSPでfirstNameプロパティを参照する最初の試みでPropertyNotFoundExceptionsを取得し続けます。私はvar ['key']とvar.value.keyをELで参照する方法と、PropertyNotFoundExceptionを得るたびに使用しようとしました。JSPテーブルにハッシュマップデータを取り込むときにPropertyNotFoundExceptionを取得し続ける

JSP:

<c:forEach var="orders" items="${ orderList }"> 
      <tr> 
       <td class="name"> 
        <a href="">${ orders.firstName }</a> 
       </td> 
       <td>${ orders.date }</td> 
       <td>${ orders.product }</td> 
       <td>${ orders.comments }</td> 
      </tr> 
     </c:forEach> 

属性設定しますサーブレット:FormManagerクラスから

FormManager fm = new FormManager(); 
HashMap hm = fm.getOrder(); 
request.setAttribute("orderList", hm); 

を:ここでは私が使用しているコードだ

public HashMap getOrder() { 
     dbm = new DatabaseManager(); 
     Statement stmt = null; 
     String sql = "SELECT * FROM orders"; 
     HashMap<String, String> itemMap = new HashMap<String, String>(); 
     String[] keys = { "firstName", "lastName", "phone", "email" , "date", "product", "comments", "id" }; 

     dbm.setUrl("jdbc:mysql://localhost:3306/pattycakes"); 
     dbm.connect(); 
     try { 
      stmt = dbm.getConn().createStatement(); 
      ResultSet rs = stmt.executeQuery(sql); 
      ResultSetMetaData rsmd = rs.getMetaData(); 

      int columns = rsmd.getColumnCount(); 
      for (int i = 0; i < columns; i++) { 
       rs.beforeFirst(); 
       rs.next(); 
       itemMap.put(keys[i], rs.getString(i + 1)); 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } finally { 
      dbm.disconnect(stmt, dbm.getConn()); 
     } 
     return itemMap; 
    } 

があるかもしれません私がまだ家族のためにこれを書いている過程にあるので、これまでのコードではいくつかの問題があります。私が懸念しているのは、例外をどのように回避するかです。ありがとう!

答えて

0

JSPはorderListプロパティは、マップのCollectionになることを想定しているようだが、あなたが提示し、他のコードは、それが単一順序を表すStringキーとString値を持つ単一のマップとして設定されて表示されます。 orderListMapであるため、JSTL foreachを使用して反復処理すると、Map.Entryのインスタンスがマップの各エントリに1つずつ生成されます。これらのエントリには、実際にはfirstNameプロパティがありません。また、抽出しようとするその他のプロパティもありません。

不適切な名前のorderListプロパティは実際には1つの注文のみのデータを提供するので、それ以上の反復は意味をなさない。私はあなたがそのプロパティの誤った値を設定していることを考えるに傾いているが、それはあなたが欲しいものを本当にだならば、あなたはこれらの線に沿ってJSPコードと一桁表示される場合があります。助けを

<!-- no foreach --> 
<tr> 
    <td class="name"> 
     <a href="">${ orderList["firstName"] }</a> 
    </td> 
    <td>${ orderList["date"] }</td> 
    <td>${ orderList["product"] }</td> 
    <td>${ orderList["comments"] }</td> 
</tr> 
+0

おかげで、私は自分のコードに矛盾があることを知っていましたが、それを見ませんでした。これは、Mapsのコレクションとオーダーのテーブルを意味します。私のところで大きなミス。 –

関連する問題