2016-03-24 15 views
1

Sorunum var: formun doğrulanması durumunda, form geçerliyse Java'da kontrol edeceğim ve geçerli değilse hatalar için dönüyorum.validate formu struts2 yönetmek INPUT

Hata metni görüntülenir, ancak formumu doğrulayamıyorum ve formumu denetlemeyi yeniden yapılandıramıyorum.

struts.xml:

<action name="validerInscription" class="utilisateurAction" method="validerInscription"> 
    <result name="success" type="redirect">home</result> 
    <result name="error" type="redirect">inscription</result> 
    <result name="input" type="redirect">inscription</result> 
</action> 

eylemi: Tamamen çerçeve doğrulama özelliğini atlayarak

public String validerInscription() { 
    logger.info("VALIDATION INSCRIPTION"); 
    boolean isInscriptionReussie = false; 

    if (verificationFormulaire() == true) { 
     utilisateur.setImage("image/avatar/avatar1.png"); 
     isInscriptionReussie = utilisateurService.sauvegarderUtilisateur(utilisateur); 
     session.put("user", utilisateur); // Ajouter utilisateur a la session 
    } else { 
     logger.info("--- INSCRIPTION => RETURN INPUT"); 
     return INPUT; 
    } 

    if (isInscriptionReussie) { 
     logger.info("INSCRIPTION REUSSIE"); 
     return SUCCESS; 
    } else { 
     logger.info("INSCRIPTION ERROR"); 
     return ERROR; 
    } 
} 

cevap

1

, o hazır kullanımlı ve aşağıdaki gibidir çalışır:

Bir JSP bir eylemi çağırdığında, istek eylemi gerçekleştirmeden önce bir Araya Aktarıcılar kümesinden geçer; her durdurucu, parametrelerin ayarlanması, doğrulanması vb. gibi bir şey yapar.

Eğer bir kesicinin bir hatası varsa, kesiciye bağlı olarak bir istisna veya bir GİRİŞ sonucu atar ve eyleme Ulaşılamaz, çünkü Yeni yanıt, bu engelleyiciden istisna veya INPUT sonucuna eşlenen sonuca başlayacaktır.

Doğrulama keseni XML doğrulama dosyaları veya validate() yöntemlerle veya diğer yollarla birlikte çalışır ve bir fieldError (validate() veya otomatik XML veya ek açıklamalar yoluyla elle) eklenirse, bu GİRİŞ sonucunu döndürecektir.

INPUT sonucu basit bir dispatcher sonuç (varsayılan) olmalıdır, bir redirect one.

<action name="validerInscription" class="utilisateurAction" method="validerInscription"> 
    <result name="success" >home.jsp</result> 
    <result name="error" >inscription.jsp</result> 
    <result name="input" >inscription.jsp</result> 
</action> 
// This will be run by the Validation Interceptor 
public void validate(){ 
    logger.info("VALIDATION INSCRIPTION"); 
    // Here you need to do the checks done in verificationFormulaire(), 
    // adding fieldErrors in case they fails 
    if (firstName==null){ 
     addFieldError("firstName", "First name can't be null"); 
    } 
    if (lastName==null){ 
     addFieldError("lastName", "Last name can't be null"); 
    } 
    // etc... 
} 

// If you reach this, validation has passed 
public String validerInscription() { 

    utilisateur.setImage("image/avatar/avatar1.png"); 
    session.put("user", utilisateur); // Ajouter utilisateur a la session 

    if (utilisateurService.sauvegarderUtilisateur(utilisateur)) { 
     logger.info("INSCRIPTION REUSSIE"); 
     return SUCCESS; 
    } else { 
     logger.info("INSCRIPTION ERROR"); 
     return ERROR; 
    } 
} 
:

Sonra böyle bir şey yapması gerektiğini