Jas*_*oor 13 jsf jsp boolean el
所以我们都知道#{someBean.value}会尝试获取someBean被调用的某些属性的内容value.它会寻找getValue().但是,如果这个属性是boolean什么?它会寻找isValue().它不会寻找的是hasValue().
这让我思考,究竟是做什么的?
Java EE 5教程章节 - 统一表达式语言是指PageContext.FindAttribute().PageContext送你去JSPContext.他们都没有真正解释他们遵循的规则来确定他们正在寻找的方法的名称.
找到说方法名称必须以get开头的文档也相当容易.但是,我知道这很isValue()有效.
任何人都可以指向我写下来的文档.我不是在寻找我正在寻找参考的教程或示例.
Bal*_*usC 17
它在JavaBeans规范和EL规范中得到了权威性的记录.
以该boolean属性为例,它在JavaBeans规范的第8.3.2节中描述:
8.3.2布尔属性
另外,对于布尔属性,我们允许getter方法匹配模式:
public boolean is<PropertyName>();可以提供此"is < PropertyName >"方法而不是"get < PropertyName >"方法,或者除了"get < PropertyName >"方法之外还可以提供它.
在任何一种情况下,如果布尔属性存在"is < PropertyName >"方法,那么我们将使用"is < PropertyName >"方法来读取属性值.
布尔属性的示例可能是:
Run Code Online (Sandbox Code Playgroud)public boolean isMarsupial(); public void setMarsupial(boolean m);
因此,#{bean.marsupial}完全符合上述getter/setter对.
在EL规范的第1.18.5章中:
1.18.5将A强制转换为布尔值
- 如果
A是,null或""返回false- 否则,如果
A是Boolean,则返回A- 否则,如果
A是aString,并且Boolean.valueOf(A)不抛出异常,则返回它
基本上你所说的就是它的全部内容.EL期望该对象遵循常规的Java bean标准.这两个应该有所帮助:
| 归档时间: |
|
| 查看次数: |
9567 次 |
| 最近记录: |