gpt4 book ai didi

jsp - 无法读取 JSP EL 中的 bool 属性

转载 作者:行者123 更新时间:2023-12-04 00:29:01 37 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How does Java expression language resolve boolean attributes? (in JSF 1.2)

(2 个回答)



boolean properties starting with “is” does not work

(1 个回答)


9 个月前关闭。




如果一个对象属性被声明为 bool 类型(不是原始 bool ),那么 EL 识别它似乎有问题!

假设您有以下对象

class Case{
private Boolean valid;

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

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

假设我们在名为“case”的请求中放置了一个 Case 类型的对象,然后我在 JSP 中尝试这个:
<td>Object is ${case.valid ? "Valid":"Invalid"} </td>

这给了我错误“有效”不是对象案例的属性!如果我将有效从 bool 值更改为原始 bool 值,它会起作用!

这是 EL 中 bool 类型的一个已知问题,即它们不被识别为 bool 值而是 Java“正常”对象?处理这个问题的正确方法是什么?

谢谢

最佳答案

我见过的所有例子都在谈论 boolean允许形式为 isProperty() 的 getter 的属性除了getProperty()从不Boolean s。

我找不到任何对此行为的“官方”引用,但 this blog post似乎描述了我最初评论时的怀疑 - Boolean是一个对象,而 boolean是一个原始类型,虽然 Java 具有自动装箱功能,但 EL 将忽略 isProperty()返回 Boolean 的 getter而是寻找 getProperty()方法。

所以我怀疑,在你的例子中,如果你改变了 isValid() 的返回类型至 boolean而不是 Boolean (但将字段的类型保留为 Boolean ),您的 EL 表达式将按您的预期工作。

关于jsp - 无法读取 JSP EL 中的 bool 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697589/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com