taglibs example java struts2 rendering

java - example - struts2 maven



struts2: s: la casilla de verificación no va en la misma fila con s: casilla de verificación (5)

Debe examinar el tema que se está utilizando para la representación de su etiqueta de formulario. Struts2 usa un sistema de plantilla (definido en struts.properties). Parece que está utilizando la plantilla xhtml de forma predeterminada, que está diseñada para generar una tabla de dos columnas. Puede cambiar a simple en la aplicación o anularla en el nivel de etiqueta (o en otras cinco jerarquías intermedias).

Aquí hay más información: http://struts.apache.org/2.0.14/docs/themes-and-templates.html

Aquí está el código .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>

Cuando se represente, la casilla de verificación ocuparía toda una fila debajo de los ''nombres'', centrados. Aquí está el html generado para lo que se supone que es una sola fila:

<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>

¿Soy yo o struts? TIA.


El problema es que con el tema struts predeterminado, s:checkbox es una celda de la tabla. (Struts 2 lo representa como una celda de tabla)

En su jsp lo incluye nuevamente en etiquetas <td> (que no es necesario)

Intente eliminar las etiquetas <td> alrededor de la etiqueta de casilla de verificación.


Agregue la propiedad theme = "simple" como


Struts2 presenta s: checkbox como una celda de tabla en sí misma. La razón es que struts2 usa un sistema de plantilla para la representación de etiquetas. El valor predeterminado es (como se define en struts-default.properties)

Tema estándar de interfaz de usuario

struts.ui.theme = xhtml

struts.ui.templateDir = plantilla

struts.ui.templateSuffix = ftl

Necesitas hacer este cambio - struts.ui.theme: simple

Se puede hacer agregando

constant name = "struts.ui.theme" value = "simple" /> etiqueta

en "struts.xml". Esto será suficiente.


Cuando defina su casilla de verificación, use el atributo "theme = simple" como se muestra a continuación:

El tema "simple" colocará su casilla de verificación en la misma fila que los otros campos de su. Aclamaciones.