Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Struts] Problema con la validazione di una form

    Ciao,

    sto utilizzando struts per un progetto.

    Ho una pagina jsp con all'interno una form ottenuta grazie ai tag struts.

    Voglio validarne il contenuto in un FormBean attraverso il metodo validate.

    Creo la classe che estende FormBean e creo la successiva ActionClass che si occuperò di richiamare gli oggetti di business.

    Se i campi vengono riempiti correttamente, la validazione non restituisce errori e il controllo passa correttamente all'ActionClass.

    Se invece ci sono degli errori di validazione il controllo dovrebbe tornare alla pagina jsp di input così come specificato nell'attributo input del tag actionmap di struts-config.
    Invece viene restituita una pagina completamente bianca.

    Come mai?

    Da cosa può dipendere?

    Non riesco più a capire dove sbatterci al testa.

    Grazie a chi mi può aiutare.

    Ciao

  2. #2
    Potrebbe dipendere dal fatto che la jsp di input non viene trovata perché specificata male. Verifica nel log del server se viene scritto qualche messaggio di errore.

    Se posti qualche frammento dello struts-config.xml e del codice magari ci si capisce qualcosa di più.

    Ciao,

  3. #3
    sì, hai ragione ma non ho il codice sotto mano al momento.

    dove lo trovo il log del server? uso tomcat 6

    Ciao e grazie

  4. #4
    Dovrebbe essere nella cartella logs dell'installazione di Tomcat.

  5. #5
    okey, appena posso controllo allora.

    grazie

  6. #6
    okey, ho sotto mano il codice in questione, ve lo posto:

    estratto delle parte inerenti di struts-config.xml:
    codice:
    <!--definizione del form bean->
    <form-bean name="FirstRegistrationFormBean" type="validation.FirstRegistrationForm"/>
    
    <!--definizione della action->
    <action name="FirstRegistrationFormBean" path="/FirstRegistration" scope="request" type="strutsAction.registration.FirstRegistration" input="/Composition/FirstRegistration.jsp" validate="true">
    	  <forward name="success" path="/ok.htm"/>
    	  <forward name="error" path="/err.htm"/>
    </action>
    metodo validate della classe validation.FirstRegistrationForm
    codice:
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
    		
    		ActionErrors err = new ActionErrors();
    		
    		//validazione
    		if(email==null || email.equals("")){
    			err.add("email", new ActionMessage("error.FirstRegistration.emailRequired"));
    		}
    		if(emailConf==null || emailConf.equals("")){
    			err.add("emailConf", new ActionMessage("error.FirstRegistration.emailConfRequired"));
    		}
    		if(!emailConf.equals(email)){
    			err.add("emailConf", new ActionMessage("error.FirstRegistration.emailConfNotMatching"));
    		}
    		if(password==null || password.length()<6){
    			err.add("password", new ActionMessage("error.FirstRegistration.passwordLength"));
    		}
    		if(passwordConf==null || !passwordConf.equals(password)){
    			err.add("passwordConf", new ActionMessage("error.FirstRegistration.passwordConfNotMatching"));
    		}
    		if(firstname==null || firstname.equals("")){
    			err.add("firstname", new ActionMessage("error.FirstRegistration.firstnameRequired"));
    		}
    		if(lastname==null || lastname.equals("")){
    			err.add("lastname", new ActionMessage("error.FirstRegistration.lastnameRequired"));
    		}
    				
    		return err;		
    	}
    codice di FirstRegistration.jsp
    codice:
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
          xmlns:c="http://java.sun.com/jsp/jstl/core">
    <head>
    
    	<title>test</title>
    
    </head>
    <body>
    <h1 align='center'>Registration-2</h1>
    					
    
    
    					<html:form action="/FirstRegistration.do" method="post"><html:errors/>
    						Type your email here: <html:text property="email"/>
    
    						Retype the email: <html:text property="emailConf"/>
    
    
    						Password (at least 6 characters): <html:password property="password"/>
    
    						Retype your password: <html:password property="passwordConf"/>
    
    
    						Firstname: <html:text property="firstname"/>
    
    						Middlename (not required): <html:text property="middlename"/>
    
    						Lastname: <html:text property="lastname"/>
    
    
    						<html:submit>Register</html:submit>
    					</html:form>
    			
    </body>
    </html>
    spero che possiate aiutarmi!

    Ciao

  7. #7
    Risolto!!

    Fortunatamente era un problema semplice!

    Nelle ultime righe dello struts-config c'era una direttiva che imponeva che tutto ciò che c'era come input del tag action fosse un global o local forward piuttosto che un percorso ad una jsp.

    Cambiato quello tutto funziona bene!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.