Glassfish не находит метод установки taglib - PullRequest
0 голосов
/ 09 января 2019

Я прочитал много других статей в StackOverflow, но ни одна из них не рассматривает мой случай.

У меня есть веб-проект на Java, в котором есть тег с атрибутом «Высота» с первой заглавной буквой. В классе java у меня есть метод "setHeight", но когда я вызываю тег, выполняющий приложение в Glassfish 5.0 с Java 8.0.152, он запускает ошибку "Не удается найти метод установки для атрибута Height". Этот же код работает правильно на сервере приложений JRun с Java 6.0.45.

Я бы не хотел менять имя атрибута, как его называют из многих jsp.

Какой метод установки ожидает Glassfish? Я пробовал это, и ни один из них не работает:

  • setHeight
  • setheight
  • settheight
  • sethheight
  • settHeight
  • setHheight
  • sethHeight
  • set_height
  • set_Height
  • sethEight

Заранее большое спасибо.

Это мой код:

/ test.tld

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"  "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
        <tlibversion>1.0</tlibversion>
        <jspversion>1.1</jspversion>
        <shortname>Test tag</shortname>
        <info/>
        <tag>
            <name>DataTable</name>
            <tagclass>com.test.taglib.DataTableTag</tagclass>
            <bodycontent>JSP</bodycontent>
            <attribute>
                <name>Height</name>
                <required>false</required>
                <rtexprvalue>true</rtexprvalue>
            </attribute>
        </tag>
    </taglib>

/ test.java

    private String Height;

    public void setHeight(String sHeight) {
        this.Height = sHeight;
    }

/ test.jsp

    <test:DataTable  Height="50">lorem ipsum</test:DataTable>

1 Ответ

0 голосов
/ 09 января 2019

Имя вашего имущества должно начинаться с символа нижнего регистра:

private String height;

public void setHeight(String sHeight) {
    this.height = sHeight;
}

Поскольку в соглашениях об именах говорится, что переменная Name должна начинаться с символа нижнего регистра, установщик имеет значение, чем set + first char uppercase ... И так работает Эль.

Для получения дополнительной информации см. https://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html

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