2010-09-22 15 views
3

J'utilise Apache Tiles 2.1 comme ma structure de modèle (avec Spring MVC).Apache Tiles définir l'attribut de balise html en utilisant la valeur <put-attribute>

Je veux savoir comment mieux définir les valeurs d'attributs HTML à partir de mon fichier de définitions de carreaux. Par exemple j'ai une zone de texte et je veux pouvoir définir l'attribut maxlength dans ma définition. Je me attendais à ce qui suit au travail -

<input id="nameField" type="text" 
    maxlength="<tiles:insertAttribute name='maxlength' />" /> 

utilisant cette définition -

<definition name="sprint-goal" > 
     <put-attribute name="maxlength" value="100" /> 
</definition> 

Mais il semble que les carreaux ne tient pas compte de la balise < insertAttribute/> si elle est placée dans une balise HTML. Cela fonctionne bien autrement.

Remarque: J'ai essayé d'utiliser ViewPreparer pour définir des valeurs de portée de la demande. Cela fonctionnera mais ce n'est pas exactement ce que je cherche. Je voudrais facilement définir des valeurs d'attribut HTML à partir d'une définition de tuiles.

Répondre

0
<put-attribute name="maxlength" value="100" type="string" /> 

type I est pas défini comme « chaîne », il serait considéré comme l'URL d'inclure ...

2

Pour définir la valeur de l'élément HTML attributs, votre meilleur pari est d'utiliser la langue d'expression . Tout d'abord, exposez l'attribut tile en tant que variable java à l'aide des balises useAttribute. Ensuite, utilisez '$ {}' pour imprimer la variable.

Exemple:

<tiles:useAttribute name="myMaxLength" id="maxLength" /> 

<input id="nameField" type="text" maxlength="${myMaxLength}" /> 

Plus d'infos: - mise à jour Juin 2014: https://tiles.apache.org/2.2/framework/tiles-jsp/tlddoc/tiles/useAttribute.html - http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html