如何使用jsp作为下拉框从mssql server db中的states表中获取状态
答案 0 :(得分:1)
首先,创建一个表示具有代码和名称的状态的javabean(基本上与数据库表中的数据相同)。然后创建一个执行数据库交互任务的DAO类。然后创建一个Servlet类,它从DAO中检索列表,将其放入请求范围并将请求转发给JSP。最后创建一个JSP文件,使用JSTL的c:forEach
显示列表。
状态bean的基本示例:
public class State {
private String code;
private String name;
// Add (generate) public getters and setters.
}
DAO类的基本示例:
public List<State> list() {
List<State> states = new ArrayList<State>();
// Do your JDBC thing here.
return states;
}
Servlet类的基本示例:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
List<State> states = stateDAO.list();
request.setAttribute("states", states);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}
JSP文件的基本示例:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<select name="state">
<c:forEach items="${states}" var="state">
<option value="${state.code}">${state.name}</option>
</c:forEach>
</select>
将url-pattern
上的servlet映射到web.xml
,并通过浏览器调用此servlet。
为了获得有关DAO模式的更多见解和想法,您可能会发现this article也很有用。
答案 1 :(得分:0)
将这些导入添加到页面
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
然后添加类似于此
的SQL查询<sql:query var="stateList" dataSource="your dataSource">
select state
from statetable
</sql:query>
然后使用标签创建列表
<select name="stateNames" id="stateNames" style="width:160px;height:125px">
<option value="ALL" selected="selected">ALL States</option>
<c:forEach items="${stateList.rows}" var="row">
<option value="${row.state}">${row.state}</option>
</c:forEach>
</select>