如何从mysql数据库中获取的值迭代jsp中的列表

时间:2015-01-20 19:11:19

标签: java mysql jsp

我编写了一个程序来从java中的mysql数据库中选择一个特定的列,我希望使用jsp在我的服务器端显示它。 在我的jsp页面中,我有一个select标签和一些选项,选中后会显示我数据库中该选项的值

例如:airport将显示我在数据库中插入的唯一机场的值 当我在服务器上调试我的代码时,我可以看到像[abc,xyz]这样的值,但是当我在服务器上运行它时,我只能看到我选择作为输出而不是值的选项(机场)。

所以我想我需要迭代列表,我做了一些关于如何在jsp第2页中迭代列表的研究,但我猜它不是我应该如何使用它的方式

以上代码:

java方面,java代码从数据库中选择列(工作正常)

    public List readCategoryMsg(String gcm_msg_type) {
    List msgList = new ArrayList<String>();
    try {

        Class.forName("com.mysql.jdbc.Driver");
        connection = (Connection)  
        DriverManager.getConnection("jdbc:mysql://localhost:3306/gcm", 
        "root", "root");
        state = (Statement) connection.createStatement();

        prep = (PreparedStatement) connection
                .prepareStatement("Select gcm_message from gcm_msg where 
        gcm_msg_type = ?");
        prep.setString(1, gcm_msg_type);
        rSet = prep.executeQuery();
        while (rSet.next()) {
            String msg_type = rSet.getString("gcm_message");
            msgList.add(msg_type);

        }

        connection.close();

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    return msgList;
    }

jsp第1页:(可以选择并将其提交到操作页面以显示输出)

        <form action="category_type_results.jsp" method="get">
        <div align="left">
            <br><select name="category_type">
                <option value="airport">Airport</option>
                <option value="art gallery">Art Gallery</option>
                <option value="atm">ATM</option>
                <option value="bank">Bank</option>
                <option value="book store">Book Store</option>
                <option value="bus station">Bus Station</option>
                <option value="cafe">Cafe</option>
          </div>
          <div>
            <input type="submit" value="Show Category Message " />
          </div>
  </form>

jsp第2页:category_type_results.jsp

我已经注释了我尝试但不正确的事情,需要一些帮助来说明如何从我的数据库中显示所选选项的值列表

<%
ServiceSql serviceSql = new ServiceSql();
String gcm_msg_type = request.getParameter("category_type");
serviceSql.readCategoryMsg(gcm_msg_type);
//List<String> msgList = serviceSql.readCategoryMsg("gcm_msg_type");
//for (int i = 0; i < msgList.size(); i++) {
//  msgList.get(i);
}
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>

<h3>
    <%=gcm_type_msg%>
    //<%=msgList%>

</h3>

</body>

我的数据库列看起来如何,我希望在我的服务器端显示相同的列表

gcm_message(column name)
hello gcm (values)
hello gcm ..
hello gcm  ..
hello gcm ..
hello gcm ..
hello gcm  (values)

任何吸烟都会有很大的帮助 感谢你

1 个答案:

答案 0 :(得分:0)

使用JSTL遍历您的列表:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
</head>
<body>
 <%
  ServiceSql serviceSql = new ServiceSql();
  String gcm_msg_type = request.getParameter("category_type");
  List msgList= serviceSql.readCategoryMsg(gcm_msg_type);
  request.setAttribute("msgList", msgList);
  %>
<h3>
  <c:forEach items="${msgList}" var="msg">
     ${msg}        
  </c:forEach>
</h3>