JSTL在JSP中未被正确读取
问题描述:
美好的一天!JSTL在JSP中未被正确读取
我试图在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(如果其他逻辑)无法正常工作。请帮助!!!!
答
如果invenItem
作为请求属性已经存在,那么您不需要使用<jsp:useBean>
来检索它,您可以直接在JSP中使用它,因此只需完全删除<useBean>
行。
如果invenItem
不已经存在,作为一个请求属性,然后将<jsp:useBean>
为您创建一个,但无论你把class
属性必须有一个公共的默认构造函数是类的完全限定名,否则你会得到你看到的异常。
答
看来你忘了引用开头JSTL核心标签库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
如果我删除的jsp:会出现useBean的另一个错误:org.apache.jasper.JasperException:PWC6049:尝试一个bean对空对象进行操作。 – newbie 2011-03-03 08:50:42
class属性设置为PUBLIC – newbie 2011-03-03 08:51:42
我发现这个问题,因为我没有默认的构造函数 – newbie 2011-03-03 08:56:04