美好的一天!
我尝试在java中使用JSTL,但是有一个错误:
exception
javax.servlet.ServletException: java.lang.InstantiationException: class session.Item : java.lang.InstantiationException: session.Item
root cause
java.lang.InstantiationException: class session.Item : java.lang.InstantiationException: session.Item
我的代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>DISPLAY ITEM</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<jsp:useBean id="invenItem" class="session.Item" scope="request"/>
<c:choose>
<c:when test="${invenItem != null}">
<h1>Inventory Item Details: JSP Tester</h1>
Stock ID : <jsp:getProperty name="invenItem" property="stockID" /><br/>
Name : <jsp:getProperty name="invenItem" property="itemName" /><br/>
Unit Price: <jsp:getProperty name="invenItem" property="unitPrice" /><br/>
On Stock : <jsp:getProperty name="invenItem" property="onStock" />
<h1> Inventory Item Details Tester: EL Method </h1>
Stock ID : ${invenItem.stockID} <br/>
Name : ${invenItem.itemName}<br/>
Unit Price: ${invenItem.unitPrice}<br/>
On Stock : ${invenItem.onStock}
</c:when>
<c:otherwise>
<%@ include file ="DataForm.html" %><br>
Item not existing!<br>
<%@ include file ="ItemEntry.html" %>
</c:otherwise>
</c:choose>
</body>
</html>
我已经阅读了这个JLPT,并按照那里的所有说明进行操作。请帮忙。谢谢。
编辑...
我按照建议解决了错误,但仍然是JSTL(if else logic)无效。请帮助!!!!
答案 0 :(得分:2)
如果invenItem
已作为请求属性存在,那么您不需要使用<jsp:useBean>
来检索它,您可以直接在JSP中使用它,所以只需删除{{1完全排行。
如果<useBean>
不存在作为请求属性,那么invenItem
将为您创建一个,但无论您在<jsp:useBean>
属性中添加了什么必须是具有公共默认构造函数的类的完全限定名称,否则您将获得您看到的异常。
答案 1 :(得分:2)
似乎你忘了在开头引用jstl核心taglib:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>