Formular abschicken nicht auf die Bohne

stimmen
0

Das Formular nicht auf die Bohne.

login.xhtml

<h:form>
    <p:panel header=Login>  
        <p:messages id=msgs showDetail=true/>
        <h:panelGrid columns=2 columnClasses=column cellpadding=5>
            <h:outputLabel for=user value=Username />
            <h:inputText id=user value=#{login.username} />

            <h:outputLabel for=pw value=Passwort />
            <h:inputSecret id=pw redisplay=false value=#{login.password} />
        </h:panelGrid>
        <p:button value=Anmelden action=#{login.login} type=submit />
    </p:panel>
</h:form>

Login.java

@ManagedBean
@ViewScoped
public class Login {

    private FacesContext fCtx;
    private String username;
    private String password;

    public Login() {
        fCtx = FacesContext.getCurrentInstance();
    }

    public String login(){
        HttpSession session = (HttpSession) fCtx.getExternalContext().getSession(false);
        String sessionId = session.getId();
        fCtx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,Info: , getUsername()+, +getPassword()+, +sessionId));  

        return login.xhtml;
    }


    public void setUsername(String username) {
        this.username = username;
    }
    public String getUsername() {
        return username;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getPassword() {
        return password;
        }
    }

Es gibt auch keine Ausnahmen in den Protokollen. Was ist das Problem und wie kann ich es beheben?

Veröffentlicht am 05/01/2011 um 14:14
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Die <p:button>unterwirft nicht die übergeordnete Form, es ist nur ein Haken der Lage sein , ohne die Absicht , jedes POST Formular abzuschicken einig JS - Code auf Knopfdruck auszuführen. Ersetzen Sie ihn durch <p:commandButton>. Auch würden Sie hinzufügen möchten update="msgs"die Komponente zu aktualisieren , mit id="msgs"nach einreichen.


In keinem Zusammenhang mit dem konkreten Problem, Sie wollen nicht verwenden , getSession(false)da sie zurückkehren können null. Verwenden Sie einfach getSession(true).

Beantwortet am 05/01/2011 um 14:52
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more