私はこれを JSP ページとして持っており、データベース内のテーブルから値を入力するコンボボックスが必要です。クラス Assembly と Class Assemblys があります。Assemblys では、すべてのレコードを Assembly のインスタンスにして、それをリストに入れます。しかし、JSTLで取得できませんか? どうしてこれなの?
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
.....
<select name = "assembly">
<c:forEach var ="item" items="${Assemblys}">
<option value="${item.id}">${item.Name}</option>
</c:forEach>
</select>
これをクラス アセンブリ クラスとして
public class Assembly {
public String Name;
public int cost;
public int id;
public Assembly(String Name, int cost, int id) {
this.Name = Name;
this.cost = cost;
this.id = id;
}
}
そして、これはアセンブリのクラスです
public class Assemblys {
List<Assembly> list = new ArrayList<Assembly>();
public Assemblys(){
list = getAssemblys();
}
private List<Assembly> getAssemblys() {
try {
Connection conn = MysqlConnect.conn();
PreparedStatement pstmt = null;
ResultSet rs = null;
String Query = "Select * from tbl_assembly";
pstmt = conn.prepareStatement(Query);
rs = pstmt.executeQuery();
while (rs.next()) {
Assembly ass = new Assembly(rs.getString(2),rs.getInt(3),rs.getInt(1));
list.add(ass);
}
conn.close();
} catch (SQLException ex) {
Logger.getLogger(Assemblys.class.getName()).log(Level.SEVERE, null, ex);
}
return list;
}
}
ドロップダウン リストが空白なのはなぜですか? 理解できません。これは正しいコードだと思いましたか?
よろしくお願いします!