Tags de zones de saisie

Tags : field - text - number - password - textarea - checkbox - file - date - suggest - fieldArea

Comportement commun des tags text, password, textarea, checkbox, file et date

Ces tags partagent une partie de code avec les tags de la taglib struts-html et en supportent presque tous les attributs des tags. Les différences principales sont :

  • Ces tags affichent une étiquette.
  • Ces tags peuvent être définis comme étant non éditables.
  • Ces tags affichent les erreurs associées à leurs propriétés.
  • Ces tags peuvent être définis comme étant requis, et dans ce cas ils sont affichés avec une étoile le précisant.

Le mode d'affichage des champs peut être défini en utilisant FormUtils.setFieldDisplayMode(request, form, fieldName, mode).

Le code HTML placé dans le tag sera rendu après le tag input. Cela permet, par exemple, d'ajouter un bouton permettant de sélectionner une valeur pour la zone de saisie dans une fenêtre popup.

Attributs de base

Nom de l'attribut Description
accesskey Le caractère du clavier à utiliser pour se placer immédiatement sur cet élément.
arg0, arg1, arg2, arg3, arg4 Valeurs optionnelles des paramètres de remplacement. [EL]
bundle La clé de l'instance de MessageResources à utiliser. Si non spécifié, choisit par défaut l'application resources configuré pour la servlet action.
hint Clé d'un message d'indice à afficher comme tooptil text sur l'étiquette.
isRequired Si cet attribut vaut true, une étoile rouge est affichée après la zone de saisie si sa valeur est null. Valeurs possibles : true | false. Par défaut : false. [EL]
key Clé de l'étiquette à afficher. Si cette clé n'a pas de valeur correspondante dans les messages, la clé est affichée.
layout Si cet attribut vaut false, le tag ne génère pas le code de disposition HTML (ie ne génère que le tag <input>). Cela permet d'utiliser uniquement le framework "display mode" de struts-layout.
layoutId Identifiant DHTML du tag. Cet attribut permet d'afficher/cacher le tag grâce au code suivant :

document.getElementById(layoutId + "F").style = "none" pour cacher (ou "" pour afficher);

document.getElementById(layoutId + "L").style = "none" pour cacher (ou "" pour afficher);

layoutId + "F" correspond à la zone de saisie, layoutId + "L" à l'étiquette.
mode Mode d'affichage de la zone de saisie. Le mode doit être de la forme <create field mode>,<edit field mode>,<inspect field mode>. Valeurs possibles : E (editable), I (inspectable+hidden, ie read-only), N (not displayed), H (hidden), P (inspect si présent), S (show, inspect mais non caché), R (read-only), D (disabled)
name Nom du bean du contexte pageContext, request, session ou application dont on veut éditer une propriété. La valeur par défaut est le bean du formulaire struts
onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup Gestionnaires d'événements JavaScript. [EL]
policy Nom de la politique d'affichage
property Propriété du bean à voir/éditer. [EL]
styleClass Classe du style CSS à utiliser.
tabindex L'ordre de tabulation pour cet élément (entiers positifs croissants).
tooltip Clé d'un message à afficher comme tooptil text sur la zone de saisie. [EL]

text

Rend un champ de saisie de texte.

Attributs

Nom de l'attribut Description
cols Nombre de colonnes à afficher dans la zone.
disabled Vaut true si cette zone doit ê grisée.
editType En mode Edit, formate la valeur en utilisant le formatter struts-layout spécifié. [EL]
maxlength Nombre maximal de colonnes de la zone.
readonly Vaut true si le champ doit être en lecture seule.
rows Nombre de lignes à afficher dans la zone.
size Nombre de colonnes à afficher dans la zone.
style Styles CSS devant être appliqués sur cet élément HTML.
styleId Identifiant devant être assigné à élément HTML (rend un attribut "id").
type En mode Inspect, formate la valeur en utilisant le formatter struts-layout spécifié. [EL]
value Valeur de la zone.

number

Rend un champ de saisie de texte ne permettant de saisir que des chiffres.

password

Rend un champ de saisie de mot de passe.

Attributs

Nom de l'attribut Description
cols Nombre de colonnes à afficher dans la zone.
maxlength Nombre maximal de colonnes de la zone.
redisplay Si vaut true, réaffiche le mot de passe. Notez que le mot de passe est lisible dans le code HTML généré
rows Nombre de lignes à afficher dans la zone.
size Nombre de colonnes à afficher dans la zone.

textarea

Rend un champ de saisie de texte multilignes.

Attributs

Nom de l'attribut Description
cols Nombre de colonnes à afficher dans la zone.
maxlength Nombre maximal de colonnes de la zone.
readonly Vaut true si le champ doit être en lecture seule.
rows Nombre de lignes à afficher dans la zone.
size Nombre de colonnes à afficher dans la zone.
value Valeur de la zone.

checkbox

Rend une case à cocher.

Attributs

Nom de l'attribut Description
maxlength Nombre maximal de colonnes de la zone.
value Valeur de la zone.

file

Rend un champ de choix de fichier (upload ou download).

Attributs

Nom de l'ttribut Description
fileKey Clé du texte à afficher comme nom de fichier.
fileName Propriété du bean indiquant le nom du fichier à télécharger. Si non spécifié, fileKey est utilisé.
filePath Propriété du bean indiquant l'url à utiliser pour télécharger le fichier

date

Rend un champ de saisie de date.

Ce tag est une zone de texte modifié afin de choisir une date dans un calendrier qui s'affiche dans une fenêtre popup.

Attributs

Nom de l'attribut Description
calendarTooltip Texte à afficher pour le lien vers le calendrier. Par défaut : "pick up a date".
cols Nombre de colonnes à afficher dans la zone.
editType En mode Edit, formate la valeur en utilisant le formatter struts-layout spécifié.
endYear Si spécifié, année où le calendrier s'achève.
maxlength Nombre maximal de colonnes de la zone.
patternKey Si spécifié, clé du pattern de date à utiliser.
rows Nombre de lignes à afficher dans la zone.
size Nombre de colonnes à afficher dans la zone.
startYear Si spécifié, année où le calendrier démarre
type En mode Inspect, formate la valeur en utilisant le formatter struts-layout spécifié.
value Valeur de la zone.

suggest

Rend un champ de saisie de texte avec une liste de suggestions : quand l'utilisateur tape un caractère, une liste de suggestions correspondant au mot saisi s'affiche, et l'utilisateur n'a qu'à utiliser le clavier ou la souris pour choisir l'une de ces suggestions.

En fait, lorsque l'utilisateur tape un caractère, une action Struts est appelée. La classe de cette action a deux particularités :

  • Elle doit hériter de la classe fr.improve.struts.taglib.layout.suggest.SuggestAction.
  • Elle doit implémenter une méthode abstraite nommée getSuggestionList(HttpServletRequest in_request, String in_word) : cette méthode retourne la liste des suggestions (sous forme d'une Collection de String) à partir du mot saisi (paramètre in_word).

Attributs

Nom de l'attribut Description
allInclue tous les champs du formulaire pour le calcul de la liste des suggestions. Si activé, l'action suggest doit étendre MultipleSuggestAction. Default : false.
suggestActionChemin de l'action à appeler afin de récupérer la liste des suggestions
suggestCountNombre maximal de suggestions à retourner (par défaut : 10)
suggestEncodingEncodage de caractères à utiliser pour les suggestions à retourner (par défaut : ISO-8859-1)
minWordLengthNombre minimal de caractères à saisir pour récupérer les suggestions (par défaut : 1)
timeoutTemps à attendre avant de récupérer les suggestions à chaque fois qu'un caractère est saisi, en millisecondes (par défaut : 0)

fieldArea

Génère un champ customisé

Le tag fieldArea s'utilise pour générer des champs customisés. Le contenu du champs se spécifie en imbriquant des tags HTML, Struts ou Struts-Layout. Le tag fieldArea permet d'aligner facilement des champs Struts-Layout avec des champs spécifiques.

Exemple:

<layout:form action="/someAction">
	<layout:text key="field.key" property="someProperty"/>
	<layout:fieldArea key="otherField.key">
		<table>...</table>
	</layout:fieldArea>
</layout:form>		

field

Rend un champ de saisie

Il s'agit d'un tag déprécié qui permet d'afficher un champ de saisie de type text, password, textarea ou checkbox.

Attributs

Nom de l'attribut Description
access Spécifie si le champ est read-write ou read-only. Valeur possibles : READWRITE ou READONLY. Par défaut : READWRITE.
cols Nombre de colonnes à afficher dans la zone.
maxlength Nombre maximal de colonnes de la zone.
redisplay Si vaut true, réaffiche la zone. Notez qu'un mot de passe est lisible dans le code HTML généré
rows Nombre de lignes à afficher dans la zone.
size Nombre de colonnes à afficher dans la zone.
type Valeurs possibles : PASSWORD ou TEXT ou TEXTAREA ou NUMBER ou BOOLEAN ou DATE. Par défaut : TEXT.