【发布时间】:2010-05-31 17:27:00
【问题描述】:
我刚刚在一个 Web 应用程序中遇到了一个小惊喜,我在 .jsp 页面中使用了 EL。
我添加了一个布尔属性并摸不着头脑,因为我将布尔值命名为“isDynamic”,所以我可以这样写:
<c:if test="${page.isDynamic}">
...
</c:if>
我觉得比以下更容易阅读:
<c:if test="${page.dynamic}">
...
</c:if>
但是.jsp 编译失败,报错:
javax.el.PropertyNotFoundException: Property 'isDynamic' not found on type com...
我发现我的 IDE(我花了一些时间才注意到它)在生成 getter 时生成了一个名为:
isDynamic()
代替:
getIsDynamic()
一旦我将 isDynamic() 手动替换为 getIsDynamic(),一切正常。
所以我在这里有两个问题:
布尔属性名称以“is”开头是否不好?
不管它是不是坏的,IntelliJ 不是在这里通过自动生成一个名为 isDynamic 而不是 getIsDynamic 的方法犯了错误吗?
【问题讨论】: