如何在EL中对布尔条件进行分组

时间:2013-04-19 10:50:18

标签: jsp jsf boolean el

我在使用EL评估JSF中的一对布尔表达式时遇到了麻烦。

这是我的代码段:

<a4j:commandButton id="addbtn" value="Add School(s)"
  action="#{somebean.someaction}"                       
  disabled="#{not studentRecords.isValid and not studentRecords.schoolSelected}">
</a4j:commandButton>

isValid和schoolSelected返回布尔结果为true或false。但是,当我用'和'运算符连接这两个时,它就不起作用了。

我尝试了

!studentRecords.isValid and !studentRecords.schoolSelected

但这也行不通。

1 个答案:

答案 0 :(得分:4)

只要正确编写了setter和getter,EL表达式就会自动确定正确的托管bean属性。

非布尔管理Bean属性

托管Bean:

private Long studentRecordNumber;

public Long getStudentRecordNumber() {
  return this.studentRecordNumber;
}

public void setStudentRecordNumber(Long studentRecordNumber) {
  this.studentRecordNumber = studentRecordNumber;
}

JSF标记

rednered="#{studentRecords.studentRecordNumber ne null}"

布尔管理Bean属性

托管Bean:

private boolean valid;

public boolean isValid() {
  return this.valid;
}

public void setValid(boolean valid) {
  this.valid = valid;
}

JSF标记

rendered="#{not studentRecords.valid and not studentRecords.schoolSelected}"

EL表达式也可用于直接评估Boolean方法的返回结果,但必须使用方法括号。

rendered="#{studentRecords.canStudentEnrollToday()}"