Autocomplete de componentes próprios c/ Facelets e Eclipse

5 respostas
L

Boa noite,
estou utilizando o Eclipse 3.4.1 c/ o Plugin JBoss Tools 2.0.0 e utilizando Facelets 1.1.15.B1 c/ JSF 1.2.

Criei um componente simples com facelets para ser um text field com label:

<ui:component>
	<h:outputLabel value="#{label} :" for="#{id}" />

	<h:inputText id="#{id}" value="#{content}" required="#{required}">
		<a4j:support event="onkeyup" requestDelay="1500" />
		<ui:insert />		
	</h:inputText>	
		<rich:message for="#{id}"  />	

</ui:component>

Ele esta funcionando normalmente, eu o invoco,por exemplo, através da chamada :

<componentes:lblInputTextMessage id="id" label="Idade" content="#{pessoaBean.pessoa.idade}" 
												 required="true" />

Porém infelizmente estou precisando escrever a tag manualmente pois o Eclipse não apresenta suporte de auto complete para a taglib que defini para meus componentes. As tags default do facelets funcionam normalmente com o auto complete, exceto as que defini na minha própria taglib:

<!DOCTYPE facelet-taglib PUBLIC 
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
	<namespace>http://mycomponents.com.br/taglib</namespace>	
	<tag>
		<tag-name>lblInputTextMessage</tag-name>
		<source>components/LabelInputMessage.xhtml</source>	
	</tag>
</facelet-taglib>

Como havia dito, o componente esta funcionando normalmente, porém estou precisando escrever manualmente suas chamadas, então:
Dúvida: Existe alguma forma de o eclipse passar a fornecer autocomplete para as minhas taglibs ?

5 Respostas

rodrigoaraujo

Caro Lupan, estou tendo o mesmo problema, e também estou procurando uma forma de solucioná-lo.
Não encontrei nada na documentaçao do facelets.

https://facelets.dev.java.net/nonav/docs/dev/docbook.html

Estou utilizando o netbeans, e acredito que possa ter uma forma de escrever um DTD para as taglibs personalizadas do facelets.

zimmermarques

Olá Pessoal, tenho a solução para esse problema. vcs vão ter que criar um arquivo TLD com as definições das tags assim:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
	<tlib-version>1.0</tlib-version>
	<jsp-version>1.2</jsp-version>
	<short-name>ipl</short-name>
	<uri>http://facelets.teste.gov/ui</uri>
	<description>
	</description>

	<tag>
		<name>inputText</name>
		<tag-class></tag-class>
		<tei-class></tei-class>
		<body-content>JSP</body-content>
		<description>Descrição do componente</description>
		<attribute>
			<name>id</name>
			<required>false</required>
			<rtexprvalue>false</rtexprvalue>
			<description>Identificador do componente.</description>
		</attribute>
		<attribute>
			<name>label</name>
			<required>false</required>
			<rtexprvalue>false</rtexprvalue>
			<description>Descrição do componente</description>
		</attribute>
	</tag>
</taglib>

e então ir em Window->Preferences->XML->XML Catalog
e adicionar o arquivo que foi criado.
depois pode ir no xhtml e testar a tag customizada.
Espero ter Ajudado.

J

Estou usando NetBeans 6.9 e continua não funcionando o autocomplete de meus componentes.
Criei o arquivo *.tld e nada… ta difícil.

Se aparecer algum cristão com a solução ficarei mto grato.

:roll:

P

to usando o eclipse e comigo tbm nao funcionou…

F

Conseguiram resolver?

Criado 13 de março de 2009
Ultima resposta 3 de mar. de 2011
Respostas 5
Participantes 6