Ошибки, когда компилятор пытается создать пользовательский тег JSP на основе Java Bean

Я пытаюсь использовать пользовательский тег на странице JSP, но я до сих пор получаю ошибки компиляции. Вот пользовательский код тега jsp вместе со страницей jsp, которая пытается его использовать.

address.tag

<%-- 
    Document   : address
    Created on : Feb 21, 2012, 1:47:19 PM
    Author     : skiabox
--%>

<%@tag description="Address Input Field" pageEncoding="UTF-8"%>
<jsp:useBean id="addressBean" scope="session" class="com.ensode.netbeansbook.AddressBean" />

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

<%-- The list of normal or fragment attributes can be specified here: --%>
<%@attribute name="addressType" required="true"%>

<%-- any content can be specified here e.g.: --%>
<table border="0">


        <tr>
            <td>Line 1:&nbsp;</td>
            <td>
                <input type="text" size="20" name="${addressType}_line1" id="${addressType}_line1" value="${addressBean.line1}" />
            </td>
        </tr>

        <tr>
            <td>Line 2:&nbsp;</td>
            <td>
                <input type="text" size="20" name="${addressType}_line2" id="${addressType}_line2" value="${addressBean.line2}" />
            </td>
        </tr>

        <tr>
            <td>City:&nbsp;</td>
            <td>
                <input type="text" size="20" name="${addressType}_city" id="${addressType}_city" value="${addressBean.city}" />
            </td>
        </tr>

        <tr>

            <td>State:&nbsp;</td>
            <td>
                <select name="${addressType}_state" id="${addressType}_state">

                    <option value=""></option>
                    <option value="AL"
                        <c:if test="${addressBean.state == 'AL'}">selected</c:if> >
                        Alabama
                    </option>
                    <option value="AK"
                        <c:if test="${addressBean.state == 'AK'}">selected</c:if> >
                        Alaska
                    </option>
                    <option value="AZ"
                        <c:if test="${addressBean.state == 'AZ'}">selected</c:if> >
                        Arizona
                    </option>
                    <option value="AR"
                        <c:if test="${addressBean.state == 'AR'}">selected</c:if> >
                        Arkansas
                    </option>
                    <option value="CA"
                        <c:if test="${addressBean.state == 'CA'}">selected</c:if> >
                        California
                    </option>

                </select>
            </td>
        </tr>

        <tr>
            <td>Zip:&nbsp;</td>
            <td>
                <input type="text" name="${addressType}_zip" id="${addressType}_zip" value="${addressBean.zip}" />
            </td>
        </tr>

</table>

index6.jsp

<%-- 
    Document   : index6
    Created on : Feb 21, 2012, 3:25:43 PM
    Author     : skiabox
--%>


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%@taglib prefix="ct" tagdir="/WEB-INF/tags/" %>
<%@page import="com.ensode.netbeansbook.AddressBean" %>

<%
    AddressBean addressBean = new AddressBean();
    addressBean.setAddressType("home");
    addressBean.setLine1("123 Tennis Ct");
    addressBean.setCity("Phoenix");
    addressBean.setState("AZ");
    addressBean.setZip("85001");

    session.setAttribute("addressBean", addressBean);
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form>
            <ct:address addressType="home"/>
            <table cellpadding="0" cellspacing="0" border="0">
                <tr>
                    <td style="width: 65px;"></td>
                    <td>
                        <input type="submit" value="Submit" />
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

AddressBean.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ensode.netbeansbook;

/**
 *
 * @author skiabox
 */
public class AddressBean {

    private String addressType;
    private String line1;
    private String line2;
    private String city;
    private String state;
    private String zip;

    public String getAddressType() {
        return addressType;
    }

    public void setAddressType(String addressType) {
        this.addressType = addressType;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getLine1() {
        return line1;
    }

    public void setLine1(String line1) {
        this.line1 = line1;
    }

    public String getLine2() {
        return line2;
    }

    public void setLine2(String line2) {
        this.line2 = line2;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getZip() {
        return zip;
    }

    public void setZip(String zip) {
        this.zip = zip;
    }
}

И вот журнал ошибок, который Netbeans дает мне, когда он пытается скомпилировать пользовательский тег:

org.apache.jasper.JasperException: PWC6033: Ошибка в компиляции Javac для JSP

PWC6197: Произошла ошибка в строке: 48 в файле jsp: /WEB-INF/tags/address.tag PWC6199: Сгенерирована ошибка сервлета: строка:///address_tag.java:215: невозможно получить доступ к javax.servlet.jsp.jstl Файл класса.core.ConditionalTagSupport для javax.servlet.jsp.jstl.core.ConditionalTagSupport не найден

PWC6197: ошибка в строке: 48 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:216: не удается найти символ символа: метод setPageContext(javax.servlet.jsp.PageContext) расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 48 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:217: не удается найти символ символа: метод setParent() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 48 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:219: не удается найти символ символа: метод doStartTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:223: не удается найти символ символа: метод doAfterBody() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:228: не удается найти символ символа: метод doEndTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:229: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:232: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6197: ошибка в строке: 52 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:241: не удается найти символ символа: метод setPageContext(javax.servlet.jsp.PageContext) расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: в строке: 52 в файле jsp произошла ошибка: /WEB-INF/tags/address.tag PWC6199: сгенерирована ошибка сервлета: строка:///address_tag.java:242: не удалось найти символ символа: метод setParent() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 52 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:244: не удается найти символ символа: метод doStartTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:248: не удается найти символ символа: метод doAfterBody() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:253: не удается найти символ символа: метод doEndTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:254: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:257: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6197: ошибка в строке: 56 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:266: не удается найти символ символа: метод setPageContext(javax.servlet.jsp.PageContext) расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: Произошла ошибка в строке: 56 в файле jsp: /WEB-INF/tags/address.tag PWC6199: Сгенерирована ошибка сервлета: строка:///address_tag.java:267: не удалось найти символ символа: метод setParent() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 56 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:269: не удается найти символ символа: метод doStartTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:273: не удается найти символ символа: метод doAfterBody() местоположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:278: не удается найти символ символа: метод doEndTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:279: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:282: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6197: ошибка в строке: 60 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:291: не удается найти символ символа: метод setPageContext(javax.servlet.jsp.PageContext) расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 60 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:292: не удается найти символ символа: метод setParent() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 60 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:294: не удается найти символ символа: метод doStartTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:298: не удается найти символ символа: метод doAfterBody() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:303: не удается найти символ символа: метод doEndTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:304: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:307: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6197: ошибка в строке: 64 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:316: не удается найти символ символа: метод setPageContext(javax.servlet.jsp.PageContext) расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 64 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:317: не удается найти символ символа: метод setParent() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6197: ошибка в строке: 64 в файле jsp: /WEB-INF/tags/address.tag PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:319: не удается найти символ символа: метод doStartTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:323: не удается найти символ символа: метод doAfterBody() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:328: не удается найти символ символа: метод doEndTag() расположение: класс org.apache.taglibs.standard.tag.rt.core.IfTag

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:329: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

PWC6199: сгенерированная ошибка сервлета: строка:///address_tag.java:332: повторное использование (javax.servlet.jsp.tagext.Tag) в org.apache.jasper.runtime.TagHandlerPool не может быть применено к (org.apache.taglibs). standard.tag.rt.core.IfTag)

/Users/skiabox/NetBeansProjects/simplewebapp2/nbproject/build-impl.xml:612: Java вернула: 1 BUILD FAILED (общее время: 2 секунды)

Как видите, первая ошибка возникает, когда код пытается получить доступ к addressBean.state. Есть идеи, как это исправить или что я делаю неправильно? Спасибо.

1 ответ

Решение

Я знаю, что уже очень поздно (более 3 лет) ответить на этот вопрос. У меня тоже была эта проблема. По-видимому, решение - "Очистить и построить проект" или нажмите SHIFT+F11 и снова запустите проект.

Другие вопросы по тегам