2017-12-30 38 views
0

나는 데이터베이스 테이블 데이터를 자바 빈 propety 및 배열 목록을 사용하여 노력하고있어. html 테이블에 배열 목록을 변환합니다. 어떤 적절한 예가 찾을 수 없습니다. 나는 Servlet을 사용하고 싶지 않다. 나는 위의 코드를 작성했습니다 자바 빈 배열 목록을 사용하여 데이터베이스 테이블을 액세스

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> 

, 나는 자바 빈 속성을 사용하여 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가 있습니다. 나는 이것이 이유가 될 수 있습니다. 알 수없는 c 태그에 대해서는 –

+0

입니다. 아래 라인과 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 "%> –