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里面显示一下而已
}

解决方案 »

  1.   

    这样是不能在jsp上得到得.
    你可以把数据放到request中. 
      

  2.   

    首先你要确定你能取到数据,也就是datas不能为空
    其次页面你要把datas放入到request里面,request.setAttribute("datas",datas);
    最后页面显示:
    <c:forEach items="${datas}" var="cur">
    <tr><td>${cur.XXXX1}</td><td>${cur.XXXX2}</td></tr>//遍历
    </c:forEach>
      

  3.   

    你如果用的是jsp+servlet+javabean的话,可以显示。
    步骤如下:
    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中的方法    <%
     }不知道是不是你想要的答案,希望是是你要的答案。
      

  4.   


    request.setAttribute("list", datas);在页面上c标签遍历一下<c:forEach items="${list}" var="dto">
    </c:forEach>
      

  5.   

    放在request或者session里面,然后用 <%= %> 或者 EL表达式 就可以了
      

  6.   

    我这就是一个普通的java类
    datas里面有值
    一定要把这个放到serlevt里面吗?问题是不知道怎么在jsp里面怎么取
    请详细点指导下
    我实在没思路了
      

  7.   

    <c:forEach items="${datas}" var="cur">
    <tr><td>${cur.XXXX1}</td><td>${cur.XXXX2}</td></tr>//遍历
    </c:forEach>这不是就在jsp里面取了吗?
    你不放在request里面,你怎么获得呢?
      

  8.   

    LZ不会是想在这里加调试点吧。
    jsp这里是不行,除非你这个方法中有加入当前的HttpServletResponse response,用PrintWriter out = response.getWriter();用out就可以打印显示到页面了。
    如果lz用的是eclipse,完全可以在eclipse中启动web server,这样的话,只要在你需要的地方加System.out.print();就完全可以看测试值了,会显示到console中去。
      

  9.   

    那你的意思是不放到servlet里面是不可能做的到了?
      

  10.   

    我先去试下循环的话。我是一个list里面放一个map还得想想
      

  11.   


    当然你可以response.getWrite()然后out.print()
    但是你这难道不也是servlet的么,我只不过就那种标签而言,难道不比一条一条的print方便吗
      

  12.   

    楼上的你可能误会我的意思了
    我的意思是我的页面跳不到servlet里面去
    只能直接在jsp里面得到一个list
      

  13.   

    也就是我的页面设计是直接跳到jsp的
    html怎么可以跳到serlect
    我没做提交动作
      

  14.   

    jsp里面这么写
    <%=request.getAttribute("datas") %>
    servlet里面这么写
    request.setAttribute("datas", DataBaseConnection.getSelectRoom());然后我的页面刚开始就在jsp页里面
    问题时得到null
    在DataBaseConnection类里面是可以得到一个list值的
      

  15.   


    问题是我不知道var里面cur是什么意思?
    ${cur.XXXX2}还有这个是什么意思
    能解释吗