JSF 页面输入文本未在 bean 中设置属性

发布于 2024-11-02 04:55:50 字数 2551 浏览 0 评论 0原文

我的 JSF 登录页面未在我的 bean 中设置属性。这是我的 Login.xhtml 的一部分:

<h:form>
<h:outputLabel value="#{controllerBean.foutmelding}" id="foutmelding"></h:outputLabel><br />
<table width="50px" align="center">
    <tr>
        <td align="left">
            <h:outputLabel for="gebruiker" value="Gebruikersnaam:"/>
        </td>
        <td>
            <h:inputText id="gebruiker" required="true" value="#{controllerBean.gebruiker}"></h:inputText>
        </td>
    </tr>
    <tr>
        <td align="left">
            <h:outputLabel for="wachtwoord" value="Wachtwoord:"/>
        </td>
        <td>
            <h:inputSecret id="wachtwoord" required="true" value="#{controllerBean.wachtwoord}"></h:inputSecret>
        </td>
    </tr>
    <tr>
        <td align="right" colspan="2">
            <h:commandButton value="Inloggen" styleClass="button" action="#{controllerBean.showLogin}"></h:commandButton>
        </td>
    </tr>
</table>
</h:form>

'gebruiker' 和 'wachtwoord' 应在以下代码中的 bean 中设置:

@Named(value="controllerBean")
@SessionScoped
public class ControllerBean implements Serializable {

/** Datafields */
public String gebruiker;
public String wachtwoord;

public String getGebruiker() {
    return gebruiker;
}

public void setGebruiker(String gebruiker) {
    this.gebruiker = gebruiker;
}

public void setWachtwoord(String wachtwoord) {
    this.wachtwoord = wachtwoord;
}

public String getWachtwoord() {
    return wachtwoord;
}

public String showLogin() {
    if (gebruiker != null && gebruiker.length() > 0 && wachtwoord != null && wachtwoord.length() > 0) {
        Klant k = controller.getKlant(gebruiker);
        if (k == null) {
                foutmelding = "Gebruikersnaam is onjuist.";
                return "Login.xhtml";
            }
            if (!k.getWachtwoord().equals(wachtwoord)) {
                foutmelding = "Wachtwoord is onjuist.";
                return "Login.xhtml";
            }
            ingelogdeKlant = k;
            foutmelding = "";
            return "Home.xhtml";

        } else {
            // Geen gebruikersnaam of wachtwoord ingevuld.
            foutmelding = "Vul uw gebruikersnaam en wachtwoord in.";
        }
        return "Login.xhtml";
    }

}

当我在 Netbeans 中调试时,值 'gebruiker' 和 'wachtwoord' 为 null。

My JSF login page doesn't set the property in my bean. This is the part of my Login.xhtml:

<h:form>
<h:outputLabel value="#{controllerBean.foutmelding}" id="foutmelding"></h:outputLabel><br />
<table width="50px" align="center">
    <tr>
        <td align="left">
            <h:outputLabel for="gebruiker" value="Gebruikersnaam:"/>
        </td>
        <td>
            <h:inputText id="gebruiker" required="true" value="#{controllerBean.gebruiker}"></h:inputText>
        </td>
    </tr>
    <tr>
        <td align="left">
            <h:outputLabel for="wachtwoord" value="Wachtwoord:"/>
        </td>
        <td>
            <h:inputSecret id="wachtwoord" required="true" value="#{controllerBean.wachtwoord}"></h:inputSecret>
        </td>
    </tr>
    <tr>
        <td align="right" colspan="2">
            <h:commandButton value="Inloggen" styleClass="button" action="#{controllerBean.showLogin}"></h:commandButton>
        </td>
    </tr>
</table>
</h:form>

The 'gebruiker' and 'wachtwoord' should be set in the bean in the following code:

@Named(value="controllerBean")
@SessionScoped
public class ControllerBean implements Serializable {

/** Datafields */
public String gebruiker;
public String wachtwoord;

public String getGebruiker() {
    return gebruiker;
}

public void setGebruiker(String gebruiker) {
    this.gebruiker = gebruiker;
}

public void setWachtwoord(String wachtwoord) {
    this.wachtwoord = wachtwoord;
}

public String getWachtwoord() {
    return wachtwoord;
}

public String showLogin() {
    if (gebruiker != null && gebruiker.length() > 0 && wachtwoord != null && wachtwoord.length() > 0) {
        Klant k = controller.getKlant(gebruiker);
        if (k == null) {
                foutmelding = "Gebruikersnaam is onjuist.";
                return "Login.xhtml";
            }
            if (!k.getWachtwoord().equals(wachtwoord)) {
                foutmelding = "Wachtwoord is onjuist.";
                return "Login.xhtml";
            }
            ingelogdeKlant = k;
            foutmelding = "";
            return "Home.xhtml";

        } else {
            // Geen gebruikersnaam of wachtwoord ingevuld.
            foutmelding = "Vul uw gebruikersnaam en wachtwoord in.";
        }
        return "Login.xhtml";
    }

}

When I debug in Netbeans, the values 'gebruiker' and 'wachtwoord' are null.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

装迷糊 2024-11-09 04:55:50

使其像

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;

@ManagedBean
@SessionScoped
public class ControllerBean implements Serializable {

@ManagedBean 默认情况下将 bean 的名称添加到 controllerBean 中,并且还会将此 POJO 注册为 ManagedBaen

Make it like

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;

@ManagedBean
@SessionScoped
public class ControllerBean implements Serializable {

@ManagedBean will by default add name of the bean to controllerBean and also will register this POJO as ManagedBaen

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文