灌装HTML 下拉列表中JSP与价值观的Servlet从数据库中读取(Filling HTML &

2019-06-21 16:00发布

我有一个数据库flights_DB包含的表名为Passengers 。 每位旅客由唯一他的护照号码识别。

我想创建一个包含表中的所有护照号码下拉列表中Passengers 。 我怎样才能做到这一点使用JSP和Servlet?

Answer 1:

假设你已经在模型和数据库的部分已经完成(根据对问题的意见),只需创建一个servlet的类并实现doGet()相应的方法。 这是比较简单的,只是从数据库中检索乘客的名单,将其存储在请求范围,并转发到应展示它的JSP。 下面的例子假设你使用EJB / JPA作为服务/ DB层,但无论您使用的服务/ DB层,你应该最终最终得到一个List<Passenger>自也无妨。

@WebServlet("/passengers")
public class Passengers extends HttpServlet {

    @EJB
    private PassengerService service;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Passenger> passengers = service.list();
        request.setAttribute("passengers", passengers);
        request.getRequestDispatcher("/WEB-INF/passengers.jsp").forward(request, response);
    }

}

创建一个JSP文件/WEB-INF/passengers.jsp它使用JSTL <c:forEach>遍历它,打印新的HTML <option>每次:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<select name="passenger">
    <c:forEach items="${passengers}" var="passenger">
        <option value="${passenger.id}"><c:out value="${passenger.name}" /></option>
    </c:forEach>
</select>

(本示例假定的Passenger实体具有idname属性)

本来应是。 只需通过调用像这样servlet的URL打开网页http://example.com/contextpath/passengers 。

也可以看看:

  • 的doGet和doPost Servlet中
  • 显示JDBC结果以HTML的JSP页面中使用MVC和DAO模式
  • 在JSP填充级联下拉列表/ Servlet的


文章来源: Filling HTML 举报