簡體   English   中英

通過基於GET參數的Java Servlet在JSP頁面中顯示數據庫中的單個記錄,怎么辦?

[英]Display single record from database in JSP page through Java Servlet based on GET parameter, how?

我有一個servlet,當它的doGet()方法被調用時,它可以正確地從數據庫中返回我想要的數據。 我希望doGet()填充一個Java bean,然后在product.jsf頁面中進行引用。

我想呼叫類似http://example.com/product.jsf?id=XXX的URL

並根據URL中的ID返回單個記錄。 我不知道這個。

您是否不需要聲明與該頁面上的字段同名的bean的字段? 如果大多數MVC引擎遵循正確的命名約定,則可以使兩者保持同步。

該servlet承擔太多責任。 它是緊密耦合的 重構數據訪問代碼到一個單獨的類,這樣就可以同時在servlet類和JSF bean的重用

因此, 基本上

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Long id = Long.valueOf(request.getParameter("id"));
    List<Product> products = productDAO.list(id);
    request.setAttribute("products", products);
    request.getRequestDispatcher("products.jsp").forward(request, response);
}

和:

@ManagedProperty(value="#{param.id}")
private Long id;
private List<Product> products; // +getter

@PostConstruct
public void init() {
    this.products = productDAO.list(id);
}

使它們可以獨立運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM