Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Strut2 - Validación formulario

Estas en el tema de Strut2 - Validación formulario en el foro de Java en Foros del Web. Buenos días, Estoy iniciándome en Strut2, y tengo una consulta, cuando valido un formulario: <s:form action="login"> <s:textfield name="username" key="label.username" theme="" /> <s:password name="userpass" key="label.password" /> ...
  #1 (permalink)  
Antiguo 16/12/2013, 03:21
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 13 años, 5 meses
Puntos: 3
Strut2 - Validación formulario

Buenos días,

Estoy iniciándome en Strut2, y tengo una consulta, cuando valido un formulario:

<s:form action="login">
<s:textfield name="username" key="label.username" theme="" />
<s:password name="userpass" key="label.password" />
<s:submit method="execute" key="label.login" />
</s:form>

El mensaje de error, me lo muestra encima de la casilla, porque el código html generado crea otro <tr>, pero lo que quiero es que el mensaje aparezca al lado de la casilla, ¿sabrían decirme como hacerlo?

Muchas gracias ,
  #2 (permalink)  
Antiguo 16/12/2013, 06:26
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Strut2 - Validación formulario

Hola,

Bueno yo no soy un experto en struts2, pero me parece que he visto el error:

Este seria el código correcto

Código:
<s:form action="login" theme="">
   <s:textfield name="username" key="label.username"  />
   <s:password name="userpass" key="label.password" />
   <s:submit method="execute" key="label.login" />
 </s:form>
Tu utilizas el tag key para coger los datos que se entran en el formulario y luego tratarlos, yo lo hago de la siguiente manera; pero creo que ambas son correctas:

Código:
<s:form action="registrar" >
   <s:textfield name="usuario.nombre" label="Nombre" >
</s:textfield>
Saludos
  #3 (permalink)  
Antiguo 16/12/2013, 06:36
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Strut2 - Validación formulario

El tag Key sino me equivoco se utiliza para obtener los valores de las label de un fichero de Properties.

Respecto al error, como es el código de tu JSP? en algún lugar se indicará donde deben situarse los errores no?

Última edición por rgf1987; 16/12/2013 a las 06:37 Razón: Corrección del texto
  #4 (permalink)  
Antiguo 16/12/2013, 09:11
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 13 años, 5 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,
  #5 (permalink)  
Antiguo 16/12/2013, 09:28
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Strut2 - Validación formulario

Hola,

No entiendo bien lo que quieres decir por que veo dos wwFormTable, tal vez sea un error.
Lo de hacer un formulario con div's bueno no se, struts2 te renderiza el formulario como una tabla, pero utilizando los themes eso se puede cambiar y puedes icluso, si eres muy hábil, generarte themes nuevos.

Ahora te voy a preguntar sobre tiles, por que yo ando un poco peleado con eso. ¿Cuántos niveles alcanzas? porque a mi no me deja más de tres, creo recordar, y estoy un poco parado en esa parte del proyecto.

Saludos.
  #6 (permalink)  
Antiguo 17/12/2013, 03:44
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Strut2 - Validación formulario

Pues echaré un vistazo a los themes, a ver si con eso lo puedo resolver.

Respecto a los tiles, te voy a decir poco, porque llevo 3 días con struts2, he reproducido este ejemplo http://www.javatpoint.com/struts-2-tiles-framework-integration-tutorial-example, tengo un header y un footer, y lo dinámico es el body que está en el medio. Lo de los niveles todavía no se como va. Un saludo.
  #7 (permalink)  
Antiguo 17/12/2013, 05:07
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Strut2 - Validación formulario

Hola,

Bueno yo empecé con ejemplos como el que me muestras, pero quería hacer algo más y por eso estoy atascado.

Saludos

Etiquetas: formulario, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:33.