在訪問 /displayinform.jsp 時,Tomcat 拋出 org.apache.jasper.JasperException,根因為 java.lang.InstantiationException: bean product not found within scope。堆疊追蹤顯示異常發生在 JSP 第 2 行,但該行僅為空白行,實際問題在於 <jsp:useBean> 或對應的 Servlet 未正確將 ProductBean 放入指定作用域。
new ProductBean() 或未調用 setAttribute。scope="session",但 Servlet 存入 request。class="com.bean.ProductBean" 與實際類不符。QueryInformServlet.doPost() 第 27 行,確認是否已 request.setAttribute("product", product)。<jsp:useBean id="product" class="com.bean.ProductBean" scope="request"/>,作用域與 Servlet 一致。searchinfom 正確返回物件,而非 null。// Servlet
ProductBean product = productdao.searchinfom(username);
if (product != null) {
request.setAttribute("product", product); // 放入 request 作用域
request.getRequestDispatcher("/displayinform.jsp").forward(request, response);
} else {
response.sendRedirect("error.jsp");
}
<!-- displayinform.jsp -->
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="product" class="com.bean.ProductBean" scope="request"/>
書號:<jsp:getProperty name="product" property="product_id"/><br>
書名:<jsp:getProperty name="product" property="product_name"/>
若問題仍存,請檢查 Tomcat 日誌 catalina.out 完整堆疊,確認類載入路徑無衝突。