怎样将从数据库中读出的数据显示在select的option中?
昨天的问题依然没有解决,就是将数据库中的产品名信息读出来,然后在页面被请求的时候动态的将得到的产品名信息以下拉列表的形式显示出来。
我的下拉列表代码如下:
<select name=productionName id="textfield2" size=1></select>
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); }}<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)%></option>
<%
}
%>
------解决方案--------------------
<select name=productionName >
<c:forEach items="${list}" var="c">
<option value="${c}">${c}</option>
</c:forEach>
</select>
[解决办法]
<select id="textfield2" name="productionName">
<%java.util.List list = (java.util.List) request.getAttribute("list");
<%for(int i=0; i<list.size(); i++){%>
<option value='<%=list.get(i)%>' <%if(i==1){ out.print(" selected");}%>>
<%=list.get(i)%>
</option>
<% }%>
</select>