struts2: s: checkbox no va en la misma fila con s: checkbox
Pregunta
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 representa, la casilla de verificación ocuparía una fila completa debajo de los 'nombres', centrada. 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.
Solución
Agregue la propiedad theme = " simple " me gusta
Otros consejos
Struts2 representa s: casilla de verificación como una celda de tabla en sí. El motivo es que struts2 utiliza un sistema de plantilla para la representación de etiquetas. El valor predeterminado es (como se define en struts-default.properties)
Tema de interfaz de usuario estándar
struts.ui.theme = xhtml
struts.ui.templateDir = plantilla
struts.ui.templateSuffix = ftl
Necesita hacer este cambio - struts.ui.theme: simple
Se puede hacer agregando
nombre constante = " struts.ui.theme " valor = " simple " / > etiqueta
en el " struts.xml ". Esto será suficiente.
Debe examinar el tema que se está utilizando para la representación de su etiqueta de formulario. Struts2 utiliza un sistema de plantillas (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 usar el valor predeterminado simple en la aplicación o anularlo en el nivel de etiqueta (u otras cinco jerarquías intermedias).
Aquí hay más información: http: // struts. apache.org/2.0.14/docs/themes-and-templates.html
Al definir su casilla de verificación, use " theme = simple " atributo como se muestra a continuación:
El " simple " El tema pondrá su casilla de verificación en la misma fila que los otros campos de su. Saludos.
El problema es que con el tema de struts predeterminado, s:checkbox
es una celda de tabla en sí.
(Struts 2 lo representa como una celda de tabla)
En su jsp lo incluye en <td>
etiquetas nuevamente (lo cual no es necesario)
Intente eliminar las etiquetas <=> alrededor de la etiqueta de la casilla de verificación.