Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Sessionscoped托管bean不保存变量jsf_Java_Jsf_Xhtml_Managed Bean_Session Bean - Fatal编程技术网

Java Sessionscoped托管bean不保存变量jsf

Java Sessionscoped托管bean不保存变量jsf,java,jsf,xhtml,managed-bean,session-bean,Java,Jsf,Xhtml,Managed Bean,Session Bean,我对托管会话范围的bean有点奇怪的问题。我对jsf很陌生,这看起来很奇怪。情况是: loginBean存储成功登录后初始化的一些变量。第一次,它们被初始化,但是在成功登录之后,用户被重定向到profile.xhtml页面,在该页面中,我从loginBean调用这些变量。在此页面中,loginBean中的变量为空。所以我在重定向后丢失了所有数据 罗金班: package beans; import facades.ContactFacade; import facades.UsersFacad

我对托管会话范围的bean有点奇怪的问题。我对jsf很陌生,这看起来很奇怪。情况是: loginBean存储成功登录后初始化的一些变量。第一次,它们被初始化,但是在成功登录之后,用户被重定向到profile.xhtml页面,在该页面中,我从loginBean调用这些变量。在此页面中,loginBean中的变量为空。所以我在重定向后丢失了所有数据

罗金班:

package beans;

import facades.ContactFacade;
import facades.UsersFacade;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import model.Contact;

@ManagedBean(name="loginBean")
@SessionScoped

public class LoginBean implements Serializable{
    @EJB
    private ContactFacade contactFacade;
    @EJB
    private UsersFacade usersFacade;

private String Name;
private String Password;
private int ContactID;
private Contact contact;

public LoginBean() {

}

public Contact getContact() {
    return contact;
}

public void setContact(Contact contact) {
    this.contact = contact;
}
public String getName() {
    return Name;
}

public void setName(String Name) {
    this.Name = Name;
}

public String getPassword() {
    return Password;
}

public void setPassword(String Password) {
    this.Password = Password;
}
public int getContactID() {
    return ContactID;
}

public void setContactID(int ContactID) {
    this.ContactID = ContactID;
}

private boolean checkValidity(){
    return (
            (getName()!=null&&getName().length()>0)
            &&(getPassword()!=null&&getPassword().length()>0))
            ?true:false;
}
public String login(){
    if(checkValidity()&&usersFacade.tryLogin(getName(), getPassword())){
        setContactID(usersFacade.getContactID(getName()));

        getContactInstance();
        return "profile.xhtml?faces-redirect=true";
    }else{
        return "loginError.xhtml?faces-redirect=true";
    }
}

private void getContactInstance(){
    setContact(contact);
    this.contact=contactFacade.getContact(getContactID());
} 

public String getDepartment(){
    return contactFacade.getDepartmentName(getContact().getDepartment());
}
}
profile.xhtml jsf

<h:form>
        <h2>My information</h2>
        <h:panelGrid columns="2">
            <h:outputLabel value="Name:"/>
            <h:outputLabel value="#{loginBean.contact.name}"/>

            <h:outputLabel value="Lastname:"/>
            <h:outputLabel value="#{loginBean.contact.lastname}"/>

            <h:outputLabel value="Address:"/>
            <h:outputLabel value="#{loginBean.contact.address}"/>

            <h:outputLabel value="Telephone:"/>
            <h:outputLabel value="#{loginBean.contact.telephone}"/>

            <h:outputLabel value="Email:"/>
            <h:outputLabel value="#{loginBean.contact.email}"/>

            <h:outputLabel value="Department:"/>
            <h:outputLabel value="#{loginBean.department}"/>

            <h:commandButton id="btnChange" value="Change Info" />


        </h:panelGrid>

    </h:form>

我的信息

这对我来说很奇怪。有人能帮忙吗?提前感谢

您是否已经覆盖了faces-cofig.xml中的bean?如果是这样,xml中定义的bean将具有更高的优先级,注释将被忽略。

您是否已经在faces-cofig.xml中覆盖了bean?如果是这样,xml中定义的bean将具有更高的优先级,注释将被忽略。

您是否已经在faces-cofig.xml中覆盖了bean?如果是这样,xml中定义的bean将具有更高的优先级,注释将被忽略。

您是否已经在faces-cofig.xml中覆盖了bean?如果是这样,xml中定义的bean将具有更高的优先级,注释将被忽略。

确实如此。我没有覆盖faces配置,但是我已经更改了bean的类型(以前是作为请求创建的,我是新手),在faces配置中,作用域仍然是作为请求。谢谢你指出这一点。我对另一个豆子也有类似的问题。我有一个注册表单,它的输入字段值没有存储在bean中。我现在尝试将其作为新元素添加到faces配置中,但仍然存在相同的问题。有小费吗?是的。我没有覆盖faces配置,但是我已经更改了bean的类型(以前是作为请求创建的,我是新手),在faces配置中,作用域仍然是作为请求。谢谢你指出这一点。我对另一个豆子也有类似的问题。我有一个注册表单,它的输入字段值没有存储在bean中。我现在尝试将其作为新元素添加到faces配置中,但仍然存在相同的问题。有小费吗?是的。我没有覆盖faces配置,但是我已经更改了bean的类型(以前是作为请求创建的,我是新手),在faces配置中,作用域仍然是作为请求。谢谢你指出这一点。我对另一个豆子也有类似的问题。我有一个注册表单,它的输入字段值没有存储在bean中。我现在尝试将其作为新元素添加到faces配置中,但仍然存在相同的问题。有小费吗?是的。我没有覆盖faces配置,但是我已经更改了bean的类型(以前是作为请求创建的,我是新手),在faces配置中,作用域仍然是作为请求。谢谢你指出这一点。我对另一个豆子也有类似的问题。我有一个注册表单,它的输入字段值没有存储在bean中。我现在尝试将其作为新元素添加到faces配置中,但仍然存在相同的问题。有小费吗?