public static List<Map<String,Object>> getSelectRoom() {
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
Connection con = null;
List<Map<String,Object>> datas= new ArrayList<Map<String,Object>>();
try {
stmt = getConnection().createStatement();
String query = "SELECT ROOMID, PRICE,ROOMINFO FROM FROOM";
rs = stmt.executeQuery(query);
rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
String[] colNames = new String[count];
for (int i = 1; i <= count; i++) {
colNames[i-1] = rsmd.getColumnLabel(i);
}
while (rs.next()) {
Map <String,Object> data = new HashMap<String,Object>();
for (int i = 0; i < colNames.length; i++) {
data.put(colNames[i], rs.getObject(colNames[i]));
}
datas.add(data);
}
System.out.println(datas);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return datas;//这里return 的这个可以在jsp里面显示吗。我就是想把表在jsp里面显示一下而已
}
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
Connection con = null;
List<Map<String,Object>> datas= new ArrayList<Map<String,Object>>();
try {
stmt = getConnection().createStatement();
String query = "SELECT ROOMID, PRICE,ROOMINFO FROM FROOM";
rs = stmt.executeQuery(query);
rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
String[] colNames = new String[count];
for (int i = 1; i <= count; i++) {
colNames[i-1] = rsmd.getColumnLabel(i);
}
while (rs.next()) {
Map <String,Object> data = new HashMap<String,Object>();
for (int i = 0; i < colNames.length; i++) {
data.put(colNames[i], rs.getObject(colNames[i]));
}
datas.add(data);
}
System.out.println(datas);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return datas;//这里return 的这个可以在jsp里面显示吗。我就是想把表在jsp里面显示一下而已
}
你可以把数据放到request中.
其次页面你要把datas放入到request里面,request.setAttribute("datas",datas);
最后页面显示:
<c:forEach items="${datas}" var="cur">
<tr><td>${cur.XXXX1}</td><td>${cur.XXXX2}</td></tr>//遍历
</c:forEach>
步骤如下:
1.在servlet中直接调用这个方法,然后用request.setAttribute("自己定义一个名字如:list",调用方法后返回值的对象名);
2.你在JSP页面上用一个遍历就可以了:
<%
List list= (List)request.getAttribute("list");
for(int i=0;i<list.size();i++){
JavaBean jb= (JavaBean)list.get(i); //强转为javabean类型
%>
<tr><td><%=jb.getName(); %></td></tr>//调用javabean中的方法 <%
}不知道是不是你想要的答案,希望是是你要的答案。
request.setAttribute("list", datas);在页面上c标签遍历一下<c:forEach items="${list}" var="dto">
</c:forEach>
datas里面有值
一定要把这个放到serlevt里面吗?问题是不知道怎么在jsp里面怎么取
请详细点指导下
我实在没思路了
<tr><td>${cur.XXXX1}</td><td>${cur.XXXX2}</td></tr>//遍历
</c:forEach>这不是就在jsp里面取了吗?
你不放在request里面,你怎么获得呢?
jsp这里是不行,除非你这个方法中有加入当前的HttpServletResponse response,用PrintWriter out = response.getWriter();用out就可以打印显示到页面了。
如果lz用的是eclipse,完全可以在eclipse中启动web server,这样的话,只要在你需要的地方加System.out.print();就完全可以看测试值了,会显示到console中去。
当然你可以response.getWrite()然后out.print()
但是你这难道不也是servlet的么,我只不过就那种标签而言,难道不比一条一条的print方便吗
我的意思是我的页面跳不到servlet里面去
只能直接在jsp里面得到一个list
html怎么可以跳到serlect
我没做提交动作
<%=request.getAttribute("datas") %>
servlet里面这么写
request.setAttribute("datas", DataBaseConnection.getSelectRoom());然后我的页面刚开始就在jsp页里面
问题时得到null
在DataBaseConnection类里面是可以得到一个list值的
问题是我不知道var里面cur是什么意思?
${cur.XXXX2}还有这个是什么意思
能解释吗