昨天的问题依然没有解决,就是将数据库中的产品名信息读出来,然后在页面被请求的时候动态的将得到的产品名信息以下拉列表的形式显示出来。
我的下拉列表代码如下:<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);
}
}我想问:1.因为这个数据是要在jsp页面显示之前取出的,所以我想用由servlet跳转到jsp页面的方法做,这样做行么。
2.我现在将Resultset的结果存到一个list当中了,但是不知道自己存的方法是否正确。
3.我将数据如何传递到jsp页面,传递到jsp页面后如何将数据显示到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);
}
}我想问:1.因为这个数据是要在jsp页面显示之前取出的,所以我想用由servlet跳转到jsp页面的方法做,这样做行么。
2.我现在将Resultset的结果存到一个list当中了,但是不知道自己存的方法是否正确。
3.我将数据如何传递到jsp页面,传递到jsp页面后如何将数据显示到select的option中。
解决方案 »
- org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class '急
- 前辈们 是不是Struts+Spring+Hibernate是大多数企业用的一种框架?
- 紧急求助,在struts中我如何自己生成一个FormFile对象
- 怎样用JavaBeans取得访问用户的IP地址??
- 100分求嵌在jsp页面中的word控件或脚本。急!!!
- 新闻系统生成静态HTML文件的问题
- jvm内存溢出
- jsp自动转换的servlet找不到
- (急)一个页面中include多个文件不能显示的问题?
- 请教一个ImageMagic的问题。
- prototype form.serialize()提交表单中文乱码
- 紧急求助:使用母版页的页面参数传递的方法
问题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
}
<select name=productionName id="textfield2" size=1>
<c:forEach items="${list}" var="data">
<option value="${data}">${data}</option>
</c:forEach>
</select>
第二个问题,我想你应该先看看我的代码,再评论。我已经将自己写的代码贴出来了。
5楼的朋友,昨天我试过你说的方法了,但是一直弄的是结果无法显示,我将Resultset的结果传递过来,用循环的方法显示了一下没成功,找了半天没找到结果。后来有一个朋友说因为在后台Resultset对象关闭的时候将Resultset中的内容清空了,可是我已经重新复制了啊。怎么能清空呢。
<%
for(int i=0;i<list.size();++i)
{
%>
option value="<%=list.get(i)%>"><%=list.get(i)%></option><%
}
%>
<c:forEach items="${list}" var="c">
<option value="${c}">${c}</option>
</c:forEach>
</select>
<%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>