我在使用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。但是当我用'and'操作符连接这两个时,它不起作用。
我试着把
!studentRecords.isValid and !studentRecords.schoolSelected
但这也不行
只要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表达式也可以用来直接计算布尔方法的返回结果,但是必须使用方法括号。
rendered="#{studentRecords.canStudentEnrollToday()}"