Le tag tabs permet de définir des onglets.
| 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. |
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. |
| reqCode | Si 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. |
Les classes des styles css suivantes sont utilisées par les tags tab et tabs :
Voir le fichier default.css de l'application d'exemple pour les valeurs par défaut.
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"/>