Задать вопрос
gadfi
@gadfi
https://gamega.org

Unable to load tag handler class в чем ошибка?

Доброго времени суток.
Довольно глупый вопрос на уровне Hello World, ранее писал только под android и немного детскоп.
Есть класс
public class HelloWorld extends TagSupport {
    private static final long serialVersionUID = 1L;

    @Override
    public int doStartTag() throws JspException {
        try {
            pageContext.getOut().print( "Hello World!" );
        } catch(IOException ioException) {
            throw new JspException("Error: " + ioException.getMessage());
        }
        return SKIP_BODY;
    }
}


в папке WEB-INF описываю тег helloworldTag.tld

<?xml version="1.0" encoding="ISO-8859-1"?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>mytag</short-name>
    <uri>/WEB-INF/helloworldTag</uri>

    <tag>
        <name>helloworld</name>
        <tag-class>ru.gadfil.jstl.HelloWorld</tag-class>
        <body-content>empty</body-content>

    </tag>

</taglib>


и в index.jsp использую его

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/helloworldTag.tld" prefix="mytag" %>
<%@ page session="false" pageEncoding="UTF-8" %>

<html>
<head>
    <title>my webapp</title>
</head>
<body>
<mytag:helloworld/>
</body>
</html>


Не могу понять вроде все подключаю в <%@ taglib uri="/WEB-INF/helloworldTag.tld" prefix="mytag" %> но ошибка остается
  • Вопрос задан
  • 2652 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@bobzer
Java EE Developer
Судя по тексту ошибки, сам класс HelloWorld забыли "положить" на сервер, либо он оказался в контексте, недоступном загрузчику классов, который загружает index.jsp. Т.е., либо класса вообще нет на сервере, либо он лежит там, откуда сервер его загрузить не догадался. В HelloWorld-ах классы обычно лежат в папке HelloWorld.war/WEB-INF/classes

А вообще, JSP - технология давно устаревшая, ее современный вариант - JSF. Начиная со второй версии спецификации создание собственных компонентов (аналог тегов JSP) стало простой задачей...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы