Question

Voici le code .jsp:

<table>
        <s:iterator value="allAgents">
            <tr>
                <td><s:property value="firstName" /></td>
                <td><s:property value="middleName" /></td>
                <td><s:property value="lastName" /></td>
                <td><s:checkbox name="ss"/></td>
            </tr>
        </s:iterator>
</table>

Une fois rendue, la case à cocher occuperait toute une ligne sous les "noms", centrée. Voici le code HTML généré pour ce qui est supposé être une seule ligne:

<tr>
    <td>first</td>
    <td>middle</td>
    <td>last</td>
    <td>
<tr>
    <td valign="top" align="right"></td>
    <td valign="top" align="left"><input type="checkbox" name="ss"
        value="true" id="agent_ss" /> <input type="hidden"
        name="__checkbox_ss" value="true" /></td>
</tr>

</td>
</tr>

Est-ce moi ou jambes de force? TIA.

Était-ce utile?

La solution

Ajouter la propriété theme = " simple " comme

Autres conseils

Struts2 rend la case à cocher s: comme une cellule de tableau. Struts2 utilise un système de gabarit pour le rendu des balises. La valeur par défaut est (telle que définie dans struts-default.properties)

Thème de l'interface utilisateur standard

struts.ui.theme = xhtml

struts.ui.templateDir = template

struts.ui.templateSuffix = ftl

Vous devez effectuer ce changement - struts.ui.theme: simple

Cela peut être fait en ajoutant

nom constant = & "; struts.ui.theme &"; valeur = " simple " / > tag

dans le & "struts.xml &"; cela suffira.

Vous devez examiner le thème utilisé pour le rendu de vos balises de formulaire. Struts2 utilise un système de template (défini dans struts.properties). Il semble que vous utilisiez le modèle xhtml par défaut, conçu pour générer un tableau à deux colonnes. Vous pouvez choisir par défaut simple dans l'application ou la remplacer au niveau de la balise (ou cinq autres hiérarchies intermédiaires).

Voici quelques informations supplémentaires: http: // struts. apache.org/2.0.14/docs/themes-and-templates.html

Lorsque vous définissez votre case à cocher, utilisez " theme = simple " attribut comme indiqué ci-dessous:

Le " simple " thème mettra votre case à cocher dans la même ligne que les autres champs de votre. Cheers.

Le problème est que, avec le thème par défaut de struts, s:checkbox est une cellule de tableau. (Struts 2 le rend comme une cellule de tableau)

Dans votre jsp, vous l'incluez à nouveau dans <td> balises (ce qui n'est pas nécessaire)

Essayez de supprimer les <=> balises situées autour de la balise de case à cocher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top