我有一个数据库flights_DB
包含的表名为Passengers
。 每位旅客由唯一他的护照号码识别。
我想创建一个包含表中的所有护照号码下拉列表中Passengers
。 我怎样才能做到这一点使用JSP和Servlet?
我有一个数据库flights_DB
包含的表名为Passengers
。 每位旅客由唯一他的护照号码识别。
我想创建一个包含表中的所有护照号码下拉列表中Passengers
。 我怎样才能做到这一点使用JSP和Servlet?
假设你已经在模型和数据库的部分已经完成(根据对问题的意见),只需创建一个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
实体具有id
和name
属性)
本来应是。 只需通过调用像这样servlet的URL打开网页http://example.com/contextpath/passengers 。