2017-12-30 78 views
0

私はJava Bean Propetyと 配列リストを使用してデータベーステーブルのデータにアクセスしようとしています。配列リストをhtmlテーブルに変換します。私は の適切な例を見つけることができません。私はサーブレットを使いたくありません。私は、コードの上に書かれているJava Beanの配列リストを使用してデータベーステーブルにアクセス

public class ItemBean { 
    int item_id; 
    String item_name; 
    String item_description; 
    double item_costpice; 
    double item_unitpice; 
    public void setItemId(int id){this.item_id=id;} 
    public int getItemId(){return item_id;} 

    public void setItemName(String name){this.item_name=name;} 
    public String getItemName(){return item_name;} 

    public void setItemDesc(String name){this.item_name=name;} 
    public String getItemDesc(){return item_name;} 

    public void setItemCostPrice(double price){this.item_costpice=price;} 
    public double getItemCostPrice(){return item_costpice;} 

    public void setItemUnitPrice(double price){this.item_unitpice=price;} 
    public double getItemUnitPrice(){return item_unitpice;} 

} 

package pam.setup; 
import java.sql.*; 
import java.util.ArrayList; 

public class Item { 

    public static ArrayList<ItemBean> ItemList() 
    { 
     ResultSet rs = null; 
     ArrayList<ItemBean> list=new ArrayList<ItemBean>(); 
     ItemBean dbitem = new ItemBean(); 
     try{ 


      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con=DriverManager.getConnection( 
        "jdbc:mysql://localhost:3306/sonoo","root",""); 

       Statement stmt=con.createStatement(); 
       rs=stmt.executeQuery("select * from items"); 
       con.close(); 
       while (rs.next()) { 
        dbitem.setItemId(rs.getInt("item_id")); 
        dbitem.setItemName(rs.getString("name")); 
        dbitem.setItemDesc(rs.getString("description")); 
        dbitem.setItemCostPrice(rs.getDouble("cost_price")); 
        dbitem.setItemUnitPrice(rs.getDouble("unit_price")); 
        list.add(dbitem); 
       }   
     }catch(Exception e){ System.out.println(e);} 

     return list; 

    } 
} 

<jsp:useBean id="items" scope="page" class="pam.setup.Item" type="pam.setup.Item"> 
    <table> 
     <tbody> 
     <c:forEach items="${item.itemList}" var="item"> 
      <tr><td>item.itemId</td><td>item.itemName</td></tr> 
     </c:forEach> 
     </tbody> 
    </table> 
</jsp:useBean> 

、私は、Java Beanのプロパティを使用してJSP で、データベーステーブルのデータにアクセスし、データを反復処理し、HTMLテーブルを生成したいです。しかし 実際の商品IDと の名前の代わりに、以下の結果が表示されます。

item.itemId item.itemName

+3

誰もがあなたのために何も書き込まれません。 JSPを書いて、問題にぶつかったら戻ってくることになります。私はStackoverflowが何のために作られたのか分からないと思います。 – sfat

+0

このリンクはあなたに役立つはずです.https://stackoverflow.com/questions/6395621/how-to-call-a-static-method-in-jsp-el –

答えて

0

新ItemBeanは、ループの各反復のために作成する必要があります。

while (rs.next()) { 
    ItemBean dbitem = new ItemBean(); 
    dbitem.setItemId(rs.getInt("item_id")); 
    ... 

はループの後に接続を閉じます。

使用$ {}豆の式を評価する:あなたが最初に何かを自分で試してみました場合を除き

<tr><td>item.itemId</td><td>${item.itemName}</td></tr> 
+0

私はこれを行いました。変更はありません。 jspファイルには、foの各ループ行に感嘆符があり、そのタグには未知のタグcが含まれています。私は薄いこれが理由かもしれないかもしれない –

+0

未知のcタグのために私は以下の行とlibのjstl.jarファイルを追加しました。 %@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%><%@ taglib uri = "http://java.sun.com/jsp/jstl/xml "prefix =" x "%> –

関連する問題