ActionError-Nachricht nicht immer angezeigt in der UI

Den Antrag auf Struts 1.2. Ich habe ein login-Formular, alle Validierungen im Zusammenhang mit der Anmeldung werden immer richtig angezeigt. Für die Validierungen, ich bin mit dem Validator framework.

Wenn die Validierung erfolgreich, aber die Benutzer-Authentifizierung fehlschlägt, dann bin ich nicht in der Lage, um die Anzeige des login-Fehlermeldung richtig.

Ich bin Einstellung der ActionError Meldung in der Aktion wie folgt:

Login loginDetails = validateUser(loginForm);
if(loginDetails == null){
    errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.invalidCredentials"));
    return mapping.findForward("failure");
}

Unten ist der Eintrag in der ApplicationResources.properties Datei:

error.invalidCredentials=User Name and Password does not match.

Wenn die loginDetails null ist dann der Fehler immer korrekt Hinzugefügt (ich habe überprüft dies durch Debuggen des Codes). Aber die Nachrichten sind nicht immer in der Benutzeroberfläche angezeigt.

Dies ist, was ich Hinzugefügt in der Benutzeroberfläche:

<td align="right">
    <div style="color:red">
        <html:errors />
    </div>
</td>

Unten ist der Eintrag in der struts-config-Datei:

<action input="/mediaLogin.jsp" path="/welcome" type="com.media.action.LoginAction"
    name="loginForm" scope="session" validate="true">
    <forward name="success" path="/rentLibrary.jsp"></forward>
    <forward name="failure" path="/mediaLogin.jsp" redirect="false"></forward>
</action>

Für einen Authentifizierungsfehler, habe ich den Pfad als die gleiche Seite mit der login-Bildschirm und aus der redirect zu false.

Bitte lassen Sie mich wissen, was vermisse ich 🙂

BEARBEITEN

Vollständige code:

LoginForm loginForm = (LoginForm)form;
HttpSession session = request.getSession();
ActionErrors errors=new ActionErrors();     
if(loginForm.getAction().equalsIgnoreCase("Login")){
    //Provide the NUll Check
    Login loginDetails = validateUser(loginForm);
    if(loginDetails == null){
        errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.invalidCredentials"));
        return mapping.findForward("failure");
    }
    populateLoginDetails(loginDetails, loginForm);
}
System.out.println("**************************************" + mapping.getAttribute() + "**************************************");
session.setAttribute("userDetails", loginForm);
return mapping.findForward("success");      

Struts-Config.xml:

<form-beans>    
    <form-bean name="loginForm" type="com.media.form.LoginForm" ></form-bean>   
</form-beans>
<action-mappings>
    <action input="/mediaLogin.jsp" path="/welcome" type="com.media.action.LoginAction"
        name="loginForm" scope="session" validate="true">
        <forward name="success" path="/rentLibrary.jsp"></forward>
        <forward name="failure" path="/mediaLogin.jsp" redirect="false"></forward>
    </action>               
</action-mappings>

<message-resources parameter="resources.ApplicationResources" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
  • Bekommst du irgendwelche Fehler in der Kommandozeile? Wenn ja, legen Sie die Stapel-Ablaufverfolgung.
  • NEIN, habe ich nicht alle Fehler...irgendwelche Hinweise?
  • Bezieht sich auf die Eigenschaften der Datei bedeutet? Ich habe nicht alles getan, wie unter Bezugnahme auf die propertiesfile, irgendwo anders als die ActionError parameter. Kann dies der Fehler...kannst du bitte posten was soll ich tun, außer was ich oben geschrieben? btw, ich habe die erste vollständige code...lassen Sie mich wissen, wenn Sie eine andere info.
  • Post das ganze struts-config-Datei
  • pls chk und lassen Sie mich wissen...abgesehen von tht ich habe nur die form-beans Hinzugefügt
  • Ich will sehen, die form-beans-tag als gut. Also erzählte ich Ihnen, post die ganze Datei!!
  • Ich habe aktualisiert!!!

InformationsquelleAutor user182944 | 2013-01-23
Schreibe einen Kommentar