使用jsp从数据库中获取数据

时间:2009-11-27 13:51:41

标签: jsp

如何使用jsp作为下拉框从mssql server db中的states表中获取状态

2 个答案:

答案 0 :(得分:1)

首先,创建一个表示具有代码和名称的状态的javabean(基本上与数据库表中的数据相同)。然后创建一个执行数据库交互任务的DAO类。然后创建一个Servlet类,它从DAO中检索列表,将其放入请求范围并将请求转发给JSP。最后创建一个JSP文件,使用JSTLc: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>