tabs

Le tag tabs permet de définir des onglets.

Attributs

Nom de l'attribut Description
selectedTabKeyName Nom du paramètre dans le contexte request/attribut ou cookie contenant la clé de l'onglet initialement sélectionné. Pour sélectionner un onglet, utiliser la méthode fr.improve.struts.taglib.layout.util.TabsUtil.setCurrentTab(selectedTabKeyName, key, request, response). Il est obligatoire de fixer cet attribut pour que le bon onglet s'affiche après un tri ou une pagination.
styleClass Classe du style CSS des onglets.
width La largeur des panels associés.

tab

Les onglets sont des panels définis dans un tag tabs grâce au tag tab, qui remplace dans ce cas le tag panel.

Si l'un des attributs forward, href ou page est spécifié, le corps de ce tag est évalué uniquement si le panel est sélectionné, ie son attribut key correspond au paramètre ou à l'attribut nommé selectedTabKeyName.

S'il y a une erreur dans un champ contenu dans un onglet, la classe du style CSS de ce panel est positionnée à; ongletTextErr par struts-layout.

Nom de l'attribut Description
arg0 -
arg0Name -
arg0Property -
arg1 -
arg1Name -
arg1Property -
arg2 -
arg3 -
arg4 -
bundle -
forward, href [EL], page Si l'un de ces attributs est spécifié, l'url spécifiée par cet attribut est invoquée lorsqu'un panel est sélectionné.
key Clé du titre du panel. Egalement utilisé afin de déterminer si un panel est sélectionné ou non.
reqCodeSi cet attribut est spécifié, le formulaire courant est soumis avec le reqCode spécifié lorsqu'un panel est sélectionné
width La largeur du panel du titre.

Classes des styles css utilisées

Les classes des styles css suivantes sont utilisées par les tags tab et tabs :

  • ongletTextEna : titre d'un onglet sélectionné
  • ongletTextDis : titre d'un onglet non sélectionné
  • ongletTextErr : titre d'un onglet non sélectionné contenant des erreurs de validation
  • ongletSpace
  • ongletMain
  • ongletMiddle

Voir le fichier default.css de l'application d'exemple pour les valeurs par défaut.

Exemples

Tous les onglets sont définis une page jsp, et on utilise dhtml pour sélectionner un onglet. Par défaut, le premier onglet est sélectionné.

<layout:form action="/registration">
	<layout:tabs styleClass="FORM" width="400">
		<layout:tab key="1" width="50">
			<layout:text styleClass="FIELD" property="fullName" key="fullName"/>
			<layout:text styleClass="FIELD" property="password" key="password"/>
		</layout:tab>
		<layout:tab key="2" width="50">
			<layout:text styleClass="FIELD" property="username" key="username"/>
			<layout:text styleClass="FIELD" property="password2" key="password2"/>	
		</layout:tab>
		<layout:tab key="3" width="50">
			<tr><td>
			panel content 3
			</td></tr>
		</layout:tab>
	</layout:tabs>
</layout:form>

Les onglets sont définis dans des pages jsp séparées (tab1 and tab2.jsp). Si un onglet est sélectionné, il est initialement affiché. Seul le corps du panel sélectionné est évalué.

tabs.jsp:
...
<layout:tabs styleClass="FORM" width="400" selectedTabKeyName="tab">
	<layout:tab key="1" href="tabs.jsp?tab=1">
		<%@include file="tab1.jsp" %>
	</layout:tab>
	<layout:tab key="2" href="tabs.jsp?tab=2">
		<%@include file="tab2.jsp" %>
	</layout:tab>
</layout:tabs>
...

tab1.jsp:
<layout:text styleClass="FIELD" property="fullName" key="fullName"/>
<layout:text styleClass="FIELD" property="password" key="password"/>

tab2.jsp:
<layout:text styleClass="FIELD" property="username" key="username"/>
<layout:text styleClass="FIELD" property="password2" key="password2"/>