iberck
9/9/2015 - 1:33 PM

Conceptos de componentes

Conceptos de componentes

id, t:id, clientId

id: id del lado cliente.
t:id: Id del componente tapestry (debe ser un valor fijo).
clientId: Atributo que tienen algunos componentes que sirve para especificar el id que tendrá el componente en el lado cliente.

Cómo asigna tapestry los id del lado cliente?

Como regla general para todos los componentes, el id del lado cliente será igual al valor de t:id, a menos que el componente cuente con el atributo clientId a través del cual se puede indicar el id que queremos tenga el elemento del lado cliente.

Id en las zonas

Si no especifica el atributo id, será el mismo que el del componente tapestry (t:id), se recomienda siempre asignar el t:id y el id a las zonas.

Components inside loops

En tapestry cada componente tiene su propio t:id, cuando se especifica un t:id explicitamente éste debe ser un valor constante <t:component1 t:id="myid"/>, si no se especifica un t:id el framework asigna uno automáticamente:

CADA INSTANCIA de un componente tiene sus propias variables, por lo tanto un componente dentro de un loop es el mismo componente (mismo t:id), por lo tanto comparte las mismas variables, pero es renderizado N veces (las variables van cambiando de valor según la programación).

Cuando se define un componente dentro de un loop, no se crea 1 componente por cada vuelta del loop (esto sería un comportamiento dinámico), en vez de eso el framework reutiliza el mismo componente dentro del loop (comportamiento estático), es decir la misma instancia del mismo componente la renderiza N veces.

Default parameter value

Con el método defaultX se puede obtener el valor por defecto de una propiedad cuando no tenga asignado un valor.

public class ConfirmDialog {

    @Parameter(defaultPrefix = BindingConstants.LITERAL)
    private String titleDialog;

    // valor por defecto del parámetro titleDialog
    String defaultTitleDialog() {
        return "Confirmación";
    }
}