TagFile criando atributos(Resolvido de vez! ) :D

1 resposta
rogercafe

gente, estou fazendo um tagfile e preciso receber tres parametros nesse tagfile, só que ele está dando erro justamente onde eu declaro os atributos:
Segue, o código do meu tagfile:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ atribute name="name" required="true" %>
<%@ atribute name="collection" type="java.util.Collection" required="true" %>
<%@ atribute name="selected" required="true" %>

<select name="${name}">
	<c:forEach var="item" items="${collection}">
		<option value="${item.id}"
		><c:if test="${item.id eq selected }">
			selected
		</c:if>
		>${item.name}</option>
	</c:forEach>
</select>>
ele da erro na linha dois, coluna quatro (2, 4) Alguém pode me dar uma luz? ------------------------------------------------------------------------------------ Solução: Era só tirar o @ dos atributos, então meu tagfile ficou assim:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<% atribute name="name" required="true" %>
<% atribute name="collection" type="java.util.Collection" required="true" %>
<% atribute name="selected" required="true" %>

<select name="${name}">
	<c:forEach var="item" items="${collection}">
		<option value="${item.id}"
		><c:if test="${item.id eq selected }">
			selected
		</c:if>
		>${item.name}</option>
	</c:forEach>
</select>>
Mas agora ele da erro na hora de chamar o tagfile, falando o seguinte:
Attribute name invalid for tag select according to TLD
Mas eu nem tenho arquivo TLD para esse tagfile :S meu código que na página jsp que chama esse tagfile é o seguinte:
<t:select	name="roger"
                				collection="${agreementTypes}"
                				selected="${Activity.agreementType.id}"/>

=============================================
Na verdade a solução que eu arrumei foi uma vergonha :$
Vou postar o tagfile correto:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ attribute name="name" required="true" %>
<%@ attribute name="collection" type="java.util.Collection" required="true" %>
<%@ attribute name="selected" required="true" %>

<select name="Roger">
	<c:forEach var="item" items="${collection}">
		<option value="${item.id}"
		><c:if test="${item.id eq selected }">
			selected
		</c:if>
		>${item.name}</option>
	</c:forEach>
</select>>

O problema desde o começo é que Attribute tem dois T e não um só como o burro aqui escreveu. :p
T+ turma, valeu pela ajuda. :S

1 Resposta

dudaskank

hehe, boa, acabou resolvendo sozinho :slight_smile:

mas aqui onde está:

não devia ficar ?

flw e boa sorte com sua tag

Criado 31 de julho de 2006
Ultima resposta 31 de jul. de 2006
Respostas 1
Participantes 2