2008-10-22 3 views
2

Я пытаюсь использовать несколько атрибутов в моей пользовательского тега, например .:JSP библиотеки пользовательских тегов (Попутный атрибуты)

<mytaglib:mytag firstname="Thadeus" lastname="Jones" /> 

Как я могу получить доступ к атрибутам в коде TagHandler?

+0

Если вы все еще возникают проблемы, возможно, бросить некоторые примеры кода. – LizB 2008-10-22 15:04:14

ответ

0

Не совсем ответ на то, что вы просили, но я ненавижу (т. Е. Никогда не писал) TagHandler, но я люблю tag files. Позволяет писать пользовательские теги с помощью jsp-файлов. Вы, вероятно, знаете о них и недоступны/применимы, но я думал, что упомянул бы их на всякий случай.

3

Для доступа к параметрам ваш класс TagHandler должен определять частные члены и предоставлять методы доступа.

public class TagHandler extends TagSupport { 
    private String firstName; 
    private String lastName; 

    public void setFirstName(String firstname) { firstName = firstname; } 
    public void setLastName(String lastname) { lastName = lastname;} 
} 

вы можете получить доступ к параметрам через переменные TagHandler.

public int doStartTag() throws JspException { 
    pageContext.getOut().print(lastName + ", " + firstName); 
} 

Если у вас есть проблемы дважды проверить соглашения о присвоении имен, то interpeter Java пытается угадать, что метод сеттер. Поэтому, если ваш параметр «FirstName», чем установленный метод должен быть «setFirstName», если параметр «lastname», установленный параметр должен быть «setlastname». Я прошу следовать за первым, так как это стандартное соглашение об именах Java.

+0

Да .. а я м просто делает этот материал, я получаю сообщение об ошибке Не удалось найти метод установки атрибута: Имя Я указанное имя атрибута в файле TLD .. что может б проблему .. – 2008-10-22 07:17:40

0

Чтобы продемонстрировать решение этой проблемы, давайте проведем аналогию. Предположим, что у нас есть «userName» и «password», которые извлекаются из index.jsp, и мы должны передавать наши данные в пользовательский атрибут тега. В моем случае его работы

<body> 

<% 
String name=request.getParameter("name"); 
String password=request.getParameter("password"); 
%> 

<%@ taglib prefix="c" uri="/WEB-INF/mytag.tld" %> 

<c:logintag name="<%=name %>" password="<%=password %>"/> 

Смежные вопросы