如果将对象属性声明为布尔类型(不是原始布尔值),那么EL在识别它时似乎存在问题!无法在JSP中读取布尔属性EL
假设你有下面的对象
class Case{
private Boolean valid;
public Boolean isValid(){
return this.valid;
}
public void setValid(Boolean val){
this.valid = val;
}
}
说我们把这类案件的一个对象的名义下“案例”的要求,然后我尝试这种在JSP:
<td>Object is ${case.valid ? "Valid":"Invalid"} </td>
这给我错误“有效”不是对象Case的属性!如果我从布尔值更改为原始布尔值,它可以工作!
这是EL中布尔类型的一个已知问题,它们不被识别为布尔类型,而是作为Java“正常”对象?处理这个问题的正确方法是什么?
感谢
我是一个noob JSP用户,但是不会在'valid'对象变量声明中使用'private'意味着你不能直接访问它? – 2011-04-18 01:12:29
是的,在Java世界中这是真实的,但是对于EL,如果您提供了getter(本例中为isValid),则可以使用JavaBean样式(object.propertyName)访问对象属性。所以当你说case.valid你实际上调用case.isValid()。你可以看到,如果我将布尔值更改为布尔值,它可以正常工作。 – DhafirNz 2011-04-18 01:19:25
所以,如果你调用方法'isValid()',它不工作? – 2011-04-18 01:20:39