Ошибки, когда компилятор пытается создать пользовательский тег 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: </td>
<td>
<input type="text" size="20" name="${addressType}_line1" id="${addressType}_line1" value="${addressBean.line1}" />
</td>
</tr>
<tr>
<td>Line 2: </td>
<td>
<input type="text" size="20" name="${addressType}_line2" id="${addressType}_line2" value="${addressBean.line2}" />
</td>
</tr>
<tr>
<td>City: </td>
<td>
<input type="text" size="20" name="${addressType}_city" id="${addressType}_city" value="${addressBean.city}" />
</td>
</tr>
<tr>
<td>State: </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: </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 и снова запустите проект.