나는 데이터베이스 테이블 데이터를 자바 빈 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
0
A
답변
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 "%> –
아무도 당신을 위해 아무것도 쓰지 않을 것이다. JSP를 작성한 다음 문제가 발생하면 다시 돌아올 수 있습니다. 나는 Stackoverflow가 무엇을 위해 만들어 졌는지 이해하지 못한다고 생각한다. – sfat
이 링크는 도움이됩니다 .https : //stackoverflow.com/questions/6395621/how-to-call-a-static-method-in-jsp-el –