Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/09/2010, 13:27
Ruben82
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: J2ee+Struts 2

Cita:
Iniciado por Xerelo Ver Mensaje
A ver, exagerando un poco, una Action es como una clase cualquiera de Java salvo en su relación con las JSP. Así que puedes validar lo que quieras y cómo quieras, la diferencia es que si no es correcto añades un error de forma que la JSP lo reciba.

Para validar teléfonos, email,... deberías usar expresiones regulares, aunque siempre puedes hacerlo con chapucillas varias.

Expresión regular para email
Código Javascript:
Ver original
  1. if (!email.matches(".+@.+\\..+")) {
  2.  
  3. addFieldError( "cBean.marca", "*" );
  4.  
  5. }

Con respecto a bases de datos, Struts no te soluciona nada, tendrás que usar JDBC como en cualquier clase de J2SE. Existen frameworks como Ibatis o Hibernate, que se combinan bien con Struts, pero en tu caso creo que sólo te complicaría el asunto.

Edito: Me olvidaba decirte que aunque el execute se ejecuta siempre (si no configuras lo contrario), tus action pueden llamar a un método/función concreta de tu Action.class, de forma que el execute sólo lo dejarías para elementos comunes.

<action name="login1" ... class="tuAction.class" method="funcion1">...</action>

<action name="login2" ... class="tuAction.class" method="funcion2">...</action>

Donde funcion1() y funcion2() son métodos de tuaction.class

Ok. tomo nota.

La verdad es que estoy un poco verde, pero es que me han metido prisa para presentar un proyecto y no tengo ningun tiempo y me veo a marchas forzadas surgiendo problemas continuamente.

otra pregunta que te queria hacer:

en el tercer formulario que te comente cargo mediante javascript un formulario u otro dependiendo de los valores que tenga. te pongo el codigo pare entendernos mejor


Código java:
Ver original
  1. <div id="form">        
  2.         <p>¿Opcion 1 o 2?
  3.             <input type="button"  value="1" onclick="show1()"/>
  4.             <input type="button"  value="2" onclick="show2()"/></p>
  5.         </div>
  6.        
  7.         <div id="formulario1" style="visibility:hidden">
  8.             <s:form action="save" method="post">                   
  9.                 <s:hidden name="formulario" value="primero"/>      
  10.                 <s:textfield key="nombre"/>  
  11.                 <s:textfield key="apellido"/>  
  12.                 <s:submit key="submit" cssClass="boton" />             
  13.                 <s:reset key="Reset" cssClass="boton" />         
  14.             </s:form>
  15.         </div>
  16.            
  17.         <div id="formulario2" style="visibility:hidden">
  18.             <s:form action="save" method="post">                   
  19.                 <s:hidden name="formulario" value="segundo"/>      
  20.                 <s:textfield key="telefono"/>  
  21.                 <s:textfield key="direccion"/>  
  22.                 <s:submit key="submit" cssClass="boton" />             
  23.                 <s:reset key="Reset" cssClass="boton" />         
  24.             </s:form>
  25.         </div>
  26. </div>

Código Javascript:
Ver original
  1. function show1(){
  2.     var No = document.getElementById("formulario2");
  3.     if (No.style.visibility=="visible"){
  4.         No.style.visibility="hidden";
  5.     }else if (document.getElementById("formulario1").style.visibility=="hidden"){
  6.         No.style.visibility="visible";
  7.     }
  8. }
  9.  
  10. function show2(){
  11.     var Si = document.getElementById("formulario1");
  12.     if (Si.style.visibility=="visible"){
  13.         Si.style.visibility="hidden";
  14.     }else if (document.getElementById("formulario2").style.visibility=="hidden"){
  15.         Si.style.visibility="visible";
  16.     }    
  17. }


El caso es que al pasarle esto al action y comprobar si los datos son correctos al volver a cargar otra vez esta pagina aparece por defecto ocultos y lo que quiero yo es que aparezca la que estaba cargada antes. Se te ocurre algo?


Un saludo y muchisimas gracias!!!!!