2011-03-03 57 views
0

美好的一天!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(如果其他逻辑)无法正常工作。请帮助!!!!

回答

2

如果invenItem作为请求属性已经存在,那么您不需要使用<jsp:useBean>来检索它,您可以直接在JSP中使用它,因此只需完全删除<useBean>行。

如果invenItem已经存在,作为一个请求属性,然后将<jsp:useBean>为您创建一个,但无论你把class属性必须有一个公共的默认构造函数是类的完全限定名,否则你会得到你看到的异常。

+0

如果我删除的jsp:会出现useBean的另一个错误:org.apache.jasper.JasperException:PWC6049:尝试一个bean对空对象进行操作。 – newbie 2011-03-03 08:50:42

+0

class属性设置为PUBLIC – newbie 2011-03-03 08:51:42

+0

我发现这个问题,因为我没有默认的构造函数 – newbie 2011-03-03 08:56:04

2

看来你忘了引用开头JSTL核心标签库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>