2010-04-08 15 views
8

La definición de componentes personalizados en Facelets es fácil y rápida, pero hay una cosa que no puedo entender.Componentes y atributos de Facelets personalizados definidos en taglib

¿Es posible con Facelets definir qué atributos tiene mi componente personalizado? Es decir: He creado un componente que se utiliza de tal manera:

<blue:modalWindow id="editFeesWizard" width="500" height="440" title="Wizard"> 

y se define en taglib.xml de la siguiente manera:

<!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>...</namespace> 
    <tag> 
     <tag-name>modalWindow</tag-name> 
     <source>components/modalWindow.xhtml</source> 
    </tag>  
</facelet-taglib> 

Taglib no contiene ninguna información sobre los atributos de los componentes (id, ancho, alto, título) e IDE no puede, por lo tanto, verificar mi sintaxis ni sugerir atributos mientras estoy escribiendo.

No encuentro nada sobre este tema en la documentación de Facelets. Pensé que podrías ayudar. ¡Gracias!

Respuesta

4

Parece que no hay forma. Pero incluso si existiera, no creo que Eclipse (por ejemplo) pueda manejarlo y ofrecer autocompletar. Es por eso que se puede definir una .tld, que contiene los atributos:

<?xml version="1.0" encoding="utf-8"?> 

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

Sólo por el bien de la terminación automática. Feo, lo sé.

0

Estoy deseando poder crear componentes compuestos utilizando JSF 2 y facelets; según lo que he leído, parece muy rápido y fácil, y usted define qué atributos acepta su componente compuesto.

0

No sé antes, pero es posible ahora. Solo agregue:

<tag> 
    <tag-name>mycustomtag</tag-name> 
    <source>tags/mycustomtag.xhtml</source> 
    <attribute> 
     <description>What does this do?!</description> 
     <name>attribute</name> 
    </attribute> 
</tag> 
Cuestiones relacionadas