我的目標是當圖片按鈕被點擊時,它會先通過servlet然後數據庫對象從數據庫中檢索數據,結果會顯示在下一個jsp頁面。圖片按鈕點擊進入Servlet沒有輸入任何值
通常,當我需要顯示數據庫中的數據時,我會要求用戶先輸入值,然後調用servlet從數據庫檢索數據,然後請求調度程序進入下一頁。
但是,現在我希望用戶單擊圖像而不是輸入任何值。它可以轉到second.jsp但不能顯示數據。
我的代碼是否有問題?或點擊無法訪問servlet時的圖片?
幫助將不勝感激。謝謝!
下面是我的代碼... :)
在的web.xml
<servlet>
<display-name>PendingOrderServlet</display-name>
<servlet-name>PendingOrderServlet</servlet-name>
<servlet-class>servlet.PendingOrderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PendingOrderServlet</servlet-name>
<url-pattern>/PendingOrderServlet</url-pattern>
</servlet-mapping>
在first.jsp
<SCRIPT type="text/javascript">
function doNextPage {
location.href = "PendingOrderServlet";}
</SCRIPT>
<img src="images/image.png" onclick="doNextPage();">
在PendingOrderServlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PendingOrderDAO pod = new PendingOrderDAO();
request.setAttribute("order", pod.getPendingOrders());
RequestDispatcher view = request
.getRequestDispatcher("second.jsp");
view.forward(request, response);
}
在PendingOrderDAO
public ArrayList getPendingOrders() {
ArrayList<OrderBean> listpendingorder = new ArrayList<OrderBean>();
try {
currentCon = ConnectionManager.getConnection();
Statement statement = currentCon.createStatement();
ResultSet rs = statement
.executeQuery("SELECT fborders.fbOrderId, fbmenu.fbMenuName, fborders.quantity, fborders.date, fborders.time, customer.custNRIC FROM fborders INNER JOIN fbmenu ON fborders.fbMenuId=fbmenu.fbMenuId INNER JOIN customer ON customer.custId=fborders.custId WHERE fborders.status='pending'");
OrderBean OrderBean = null;
while (rs.next()) {
OrderBean = new OrderBean();
OrderBean.setFbOrderId(rs.getInt("fbOrderId"));
OrderBean.setFbMenuName(rs.getString("fbMenuName"));
OrderBean.setQuantity(rs.getString("quantity"));
OrderBean.setDate(rs.getString("date"));
OrderBean.setTime(rs.getString("time"));
OrderBean.setCustNRIC(rs.getString("custNRIC"));
listpendingorder.add(OrderBean);
}
} catch (SQLException e) {
e.printStackTrace();
}
return listpendingorder;
}
在second.jsp
<table class="table tableshow">
<thead>
<tr>
<th>ffOrder ID</th>
<th>Menu</th>
<th>Quantity</th>
<th>Date</th>
<th>Time</th>
<th>Customer NRIC</th>
<th>.....</th>
</tr>
</thead>
<tbody>
<c:forEach items="${pendingorder}" var="order">
<tr>
<td>${pendingorder.getFbOrderId()}</td>
<td>${pendingorder.getFbMenuName()}</td>
<td>${pendingorder.getQuantity()}</td>
<td>${pendingorder.getDate()}</td>
<td>${pendingorder.getTime()}</td>
<td>${pendingorder.getCustNRIC()}</td>
</tr>
</c:forEach>
</tbody>
</table>
我不; t看到任何錯誤。你的second.jsp是什麼? – Loc
@Loc嗨,我粘貼了我所有的代碼,包括DAO和second.jsp。在doGET上撥打我的dao是否正確? –
當然。你可以在doGet中做任何事情。 – Loc