Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Validation Struts

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79

    Validation Struts

    Salve a tutti,

    ho la versione di struts 1.2.8 e voglio usare il validation per validare i miei form.Configuro tutto ma non mi funziona la validazione, non riporta nessun errore l applicazione gira ma è come se non valida esegue la query non si blocca o manda un errore quando clicco il bottone e il campo è vuoto .Ecco i passaggi che ho fatto.Grazie in anticipo


    Struts-config.xml
    codice:
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">   <set-property property="pathnames"    value="/WEB-INF/validator-rules.xml"/>      </plug-in>
    codice:
    <action path="/ente" name="EnteForm" validate="true" 	                 input="page.enteInserimento" type="com.ancitel.blank.web.struts.action.EnteAction" 	      parameter="methodEnte" 	      scope="session" > 	      <forward name="responsabile" path="page.responsabileInserimento"/> 	      <forward name="failure" path="/pages/user/errorResponsabile.jsp"/> 	   </action>
    Il mio form estende ValidatorForm eh ha i get e set delle mie proprietà.

    Poi nel validation.xml
    codice:
      
    <form name="EnteForm">       		<field property="note" depends="required">         		<arg key="validation.ente.note"/>       		</field>     	</form>
    Validation-rules.xml

    codice:
    <form-validation>     <global>        		        <validator name="required"             classname="org.apache.struts.validator.FieldChecks"                method="validateRequired"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"                   msg="errors.required"/>
     </global> </form-validation>
    File di property
    codice:
    errors.required={0} is required.
    validation.ente.note=Attenzione il campo note non è stato inserito

    jsp
    codice:
    <html:text property="note" size="30" 		maxlength="30" styleId="note" name="EnteForm" /><html:errors property="note" />

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Dall'esperienza che ho su struts 1.1 sembrerebbe che tu abbia dimenticato di inserire il file validation.xml nella proprietà pathnames all'interno dello struts-config.

    Prova con:
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

    Attenzione: non inserire uno spazio dopo la virgola, mi sembra che struts si arrabbi!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Ho seguito il tuo consiglio...non fuziona

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Domanda stupida: dopo la modifica hai riavviato il server? Questo perché il file struts-config viene caricato nella servlet-context e quindi va "refreshato".

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Il campo che vuoi validare (ente) nel form lo hai definito come stringa? Si? Ok! No? Prova a definirlo momentaneamente come stringa e vedere se funziona la validazione.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Si si certo l ho riavviato

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Si si è una stringa

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Non riesco proprio a capire ! A livello di configurazione sembra tutto ok!

    Sicuramente l'errore è li che ci guarda addosso!

    Puoi pf postare il contenuto della classe form?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    79
    Lo dici a me...sto impazzendo


    Form
    codice:
     import java.text.ParseException;  import javax.servlet.http.HttpServletRequest;  import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; import org.apache.struts.validator.DynaValidatorForm; import org.apache.struts.validator.ValidatorActionForm; import org.apache.struts.validator.ValidatorForm;  import com.ancitel.blank.dao.hibernate.Ente;  public class EnteForm extends ValidatorActionForm{  	private String action = "add";  	private String note = null; 	private String indirizzo = null; 	private String citta = null; 	private String regione = null; 	private String idTipoEnte = null; 	private String idStato = null; 	private String idUtente = null;  	public void reset(ActionMapping mapping, HttpServletRequest request) {  		this.note = null; 		this.indirizzo = null; 		this.citta = null; 		this.regione = null; 		this.idTipoEnte = null; 		this.idStato = null; 		this.idUtente = null;  		this.action = "add";  	}  	  	public String getAction() { 		return action; 	}  	public void setAction(String action) { 		this.action = action; 	}  	public String getNote() { 		return note; 	}  	public void setNote(String note) { 		 		this.note = note; 	}  	public String getIndirizzo() { 		return indirizzo; 	}  	public void setIndirizzo(String indirizzo) { 		this.indirizzo = indirizzo; 	}  	public String getCitta() { 		return citta; 	}  	public void setCitta(String citta) { 		this.citta = citta; 	}  	public String getRegione() { 		return regione; 	}  	public void setRegione(String regione) { 		this.regione = regione; 	}  	public String getIdTipoEnte() { 		return idTipoEnte; 	}  	public void setIdTipoEnte(String idTipoEnte) { 		this.idTipoEnte = idTipoEnte; 	}  	public String getIdStato() { 		return idStato; 	}  	public void setIdStato(String idStato) { 		this.idStato = idStato; 	}  	public String getIdUtente() { 		return idUtente; 	}  	public void setIdUtente(String idUtente) { 		this.idUtente = idUtente; 	}  	public Ente makeEnte(EnteForm form) throws ParseException { 		Ente enteDao = new Ente();  		 		enteDao.setNote(form.getNote()); 		enteDao.setIndirizzo(form.getIndirizzo()); 		enteDao.setCitta(form.getCitta()); 		enteDao.setRegione(form.getRegione()); 		enteDao.setIdTipoEnte(Integer.parseInt(form.getIdTipoEnte())); 		enteDao.setIdStato(Integer.parseInt(form.getIdStato())); 		enteDao.setIdUtente(Integer.parseInt(form.getIdUtente())); 		 		return enteDao;  	}  }

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Ho notato che il tuo form estende ValidatorActionForm. Questa classe permette un controllo più specifico sulle regole di validazione facendole dipendere dall'action mapping che va indicato al posto del form all'interno del file validation.xml:

    <form name="/soggettoRicerca">
    ...
    </form>


    Se non hai questa necessità (e non credo) devi estendere il tuo form da ValidatorForm e nel file validation.xml devi inserire esattamente il nome del forms-bean indicato nella rispettiva sezione dello struts-config.

    <form name="EnteForm">
    ...
    </form>


    Spero di essermi spiegato!

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.