Int始终为0 - JSF

时间:2015-02-28 13:39:36

标签: jsf jsf-2

我的JSF应用程序有问题,因为我正在使用优惠券的int值创建User对象,我想展示它们,但它不起作用。优惠券总是0.其余的(用户名和东西)正常加载。

这是一些代码: Service.java

        User admin = new User("JustCinek", "26454dd458d9b07364a3a198fcfd459f", "marcingadomski94@gmail.com", "Jettesvej 15, 2TV", "8220", "Aarhus", 100);
        users.add(admin);

User.java

public User(String username, String password, String email, String address, String zipCode, String town, int coupons){
    this.username = username;
    this.password = password;
    this.email = email;
    this.address = address;
    this.zipCode = zipCode;
    this.town = town;
    this.coupons = coupons;
}

public int getCoupons(){ return this.coupons; }
public void setCoupons(int coupons){ this.coupons = coupons; }

的index.xhtml

            <h:form rendered="#{user.loggedIn}">
                <div id="menuItem" class="clearfix">
                    Witaj, #{user.username}!<br></br>
                    Twoje kupony: #{user.coupons}
                </div>
            </h:form>

用户名正常显示,即使在服务类中创建了用户对象且优惠券值设置为100

,优惠券也始终为0

1 个答案:

答案 0 :(得分:3)

我认为你只是在这里混合你的User实例:

User admin = new User("JustCinek", "26454dd458d9b07364a3a198fcfd459f", "marcingadomski94@gmail.com", "Jettesvej 15, 2TV", "8220", "Aarhus", 100);

在使用service.java manged bean实例化的不同bean(user)中发生了这种情况,当你第一次调用bean时会发生这种情况。

请注意,您在JSF页面中使用的user对象以及托管bean User的名称与您在服务bean中实例化的admin不同,因此,在呈现页面后,您获得的用户名可能是您在托管bean中设置或初始化的用户名,而不是服务bean中的用户名,这解释了为什么您可以在优惠券保持0时看到有效的用户名(未初始化,因此它将获得默认值,0int