16/12/2013, 09:11
|
| | | Fecha de Ingreso: noviembre-2010 Ubicación: Madrid
Mensajes: 96
Antigüedad: 14 años, 2 meses Puntos: 3 | |
Respuesta: Strut2 - Validación formulario Sorry el theme="" se me ha colado, el formulario es el siguiente:
<s:form action="login" method="POST">
<s:textfield name="username" key="label.username" />
<s:password name="userpass" key="label.password" />
<s:submit method="execute" key="label.login" />
</s:form>
El key es para obtener los valores desde el properties, y eso me funciona, y también me funciona la validación, cuando dejo vacios los campos usuario y contraseña, me saca el mensaje de error encima de las casillas, pero yo quiero que me muestre el error al lado de las casillas, que no se genere ese <tr> de más.
Para mostrar el error, pense que tenía que usar <s:fielderror fieldName="username" />, pero no hace falta, el error se muestra, pero no en el lugar que quiero.
Cuando veo el código fuente, el html generado es el siguiente:
<table class="wwFormTable">
<tr errorFor="login_username">
<td align="center" valign="top" colspan="2"><span class="errorMessage">Usuario requerido</span></td>
</tr>
<tr>
<td class="tdLabel"><label for="login_username" class="errorLabel">Usuario:</label></td>
<td><input type="text" name="username" value="" id="login_username"/></td>
</tr>
<tr errorFor="login_userpass">
<td align="center" valign="top" colspan="2"><span class="errorMessage">Password requerido</span></td>
</tr>
<tr>
<td class="tdLabel"><label for="login_userpass" class="errorLabel">Contraseña:</label></td>
<td><input type="password" name="userpass" id="login_userpass"/></td>
</tr>
<tr>
<td colspan="2"><div align="right"><input type="submit" id="login_label_login" name="method:execute" value="Acceso"/></div></td>
</tr>
</table>
Y me gustaría que fuera así, o de otra cualquier manera que me surgiráis, pero la validación la quiero hacer desde la clase action, como lo estoy haciendo:
<table class="wwFormTable">
<tr>
<td class="tdLabel"><label for="login_username" class="errorLabel">Usuario:</label></td>
<td><input type="text" name="username" value="" id="login_username"/></td>
<td align="center" valign="top" colspan="2"><span class="errorMessage">Usuario requerido</span></td>
<tr>
<td class="tdLabel"><label for="login_userpass" class="errorLabel">Contraseña:</label></td>
<td><input type="password" name="userpass" id="login_userpass"/></td>
<td align="center" valign="top" colspan="2"><span class="errorMessage">Password requerido</span></td>
</tr>
<tr>
<td colspan="3"><div align="right"><input type="submit" id="login_label_login" name="method:execute" value="Acceso"/></div></td>
</tr>
</table>
El código jsp, es exclusivamente el formulario y un <s:actionerror /> que uso para otra cosa, no incide, porque uso tiles:
<s:actionerror />
<s:form action="login" method="POST" namespace="/">
<s:textfield name="username" key="label.username" />
<s:password name="userpass" key="label.password" />
<s:submit method="execute" key="label.login" />
</s:form>
Aunque lo ideal sería evitar usar una tabla para el formulario de login, y hacerlo con divs, pero no se como hacerlo, porque el código html se genera automáticamente.
Muchas gracias por las sugerencias, |