JSTL не читается должным образом в JSP - PullRequest
0 голосов
/ 03 марта 2011

Добрый день!

Я пытался использовать JSTL в Java, но есть ошибка:

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 и следовал всем инструкциям там. Пожалуйста помоги. Спасибо.

EDIT ...

Я исправил ошибку, как было предложено, но JSTL (если не логика) не работает. ПОМОГИТЕ ПОЖАЛУЙСТА !!!!

Ответы [ 2 ]

2 голосов
/ 03 марта 2011

кажется, что вы забыли сослаться на jstl core taglib в начале:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2 голосов
/ 03 марта 2011

Если invenItem уже существует в качестве атрибута запроса, вам не нужно использовать <jsp:useBean> для его извлечения, вы можете просто использовать его непосредственно в JSP, поэтому просто полностью удалите строку <useBean>.

Если invenItem не уже существует в качестве атрибута запроса, то <jsp:useBean> создаст его для вас, но все, что вы указали в атрибуте class, должно быть полностьюквалифицированное имя класса с общедоступным конструктором по умолчанию, иначе вы получите исключение, которое вы видели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...