日期:2014-05-17  浏览次数:20776 次

怎样将从数据库中读出的数据显示在select的option中?
昨天的问题依然没有解决,就是将数据库中的产品名信息读出来,然后在页面被请求的时候动态的将得到的产品名信息以下拉列表的形式显示出来。
  我的下拉列表代码如下:
HTML code
<select name=productionName id="textfield2" size=1>
</select>

  后台取数据库的代码如下:
Java code
public class selectProduct extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;
        List<String> list = new ArrayList<String>();
        String sql = "select product_name from product";

        ConnectionFactory newconn = new ConnectionFactory();
        conn = newconn.getConnection();
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            while (rs.next()) {
                String st1 =rs.getString("product_name");
                list.add(st1);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        request.setAttribute("list", list);
        String URL = "/jsp/ReleaseDepend.jsp";
        request.getRequestDispatcher(URL).forward(request, response);
    }
}
我想问:1.因为这个数据是要在jsp页面显示之前取出的,所以我想用由servlet跳转到jsp页面的方法做,这样做行么。
  2.我现在将Resultset的结果存到一个list当中了,但是不知道自己存的方法是否正确。
  3.我将数据如何传递到jsp页面,传递到jsp页面后如何将数据显示到select的option中。

------解决方案--------------------
问题1:jsp页面也可以直接dao操作,所以不存在之前取出,之后取出的问题!你这样取出来也没有问题,只要你在页面上能得到!
问题2:不知道,可以试试啊!为什么不试,先来发帖呢!惰性不好的啊!
问题3:jsp可以<%%>中写循环然后外面+html的方式写出来!
for(int j=0;j<v_option.size();j++){
com.sictech.dbpool.HashtableExtend he=(com.sictech.dbpool.HashtableExtend) v_option.elementAt(j);
%>
<option value="<%=he.getString("ID")%>"><%=he.getString("NAME")%></option>
<%
}
%>
------解决方案--------------------

<s:select list= "aaaList " listKey= "value " listValue= "label " />

在Action中写一个方法
public List <LabelValueBean> getAaaList() {
// your code
}
------解决方案--------------------
这不都存好了,直接循环显示不就好了
------解决方案--------------------
CSS code

<select name=productionName id="textfield2" size=1>
     <c:forEach items="${list}" var="data">
             <option value="${data}">${data}</option>
     </c:forEach>
</select>

------解决方案--------------------
你的结果不是都在request中存好了 直接在页面拿出来循环显示就行了~
------解决方案--------------------
你可以在jsp页面中把存好的list打印出来,如果没有数据显示那就说明你的list里面的值没有放进去。list里面有值你就直接循环赋给select
<%
for(int i=0;i<list.size();++i)
{
%>
option value="<%=list.get(i)%>"><%=list.get(i)