JSF呈现的形式不起作用

时间:2015-02-23 17:04:59

标签: jsf jsf-2 rendering

我有JSF渲染的这个问题。我有这个bean包含布尔类型值ulogovan

    @Named("sessionBean")
    @SessionScoped
    public class SessionBean implements Serializable{
    private boolean ulogovan;
    private Zaposleni ulogovanZaposleni;

    public SessionBean() {
        ulogovan = false;
        ulogovanZaposleni = null;
    }    
    public boolean getUlogovan() {
        return ulogovan;
    }    
    public void setUlogovan(boolean ulogovan) {
        this.ulogovan = ulogovan;
    }

我必须根据ulogovan的值显示表单。这是表格的开头:

<h:form id="form" rendered="#{sessionBean.ulogovan == true}">

2 个答案:

答案 0 :(得分:1)

因为ulogovan = false;所以当你说#{sessionBean.ulogovan == true}false == truefalse。因此,除非您将ulogovan设置为true,否则不会呈现您的表单。

如果您希望根据ulogovan的值呈现表单,请按以下步骤进行呈现:

<h:form id="form" rendered="#{sessionBean.ulogovan}">

答案 1 :(得分:0)

您可以在init()方法中包含@PostConstruct注释。 因此,在渲染页面之前,将首先调用此方法。 您可以根据需要设置条件

@Named("sessionBean")
@SessionScoped
public class SessionBean implements Serializable{
private boolean ulogovan;
private Zaposleni ulogovanZaposleni;

@PostConstruct
public void init() {
      setUlogovan(false);
      ulogovanZaposleni = null;
} 

public boolean getUlogovan() {
    return ulogovan;
}    
public void setUlogovan(boolean ulogovan) {
    this.ulogovan = ulogovan;
}

这肯定会有用。