我正在尝试在JBoss 7.0.2上部署一个在GlassFish 3.1.1上运行良好的JavaEE6应用程序。由于JBoss EL中的差异,当我试图导航到页面时,我遇到了PropertyNotFound异常。似乎JBoss EL不允许在没有参数的情况下使用方法表达式:
<c:if test="${bean.calculateX('foo').size() > 0}">在本例中,JBoss EL认为size方法是一个参数。我可以通过将其更改为以下内容,使其在JBoss中正常工作:
<c:if test="${bean.calculateX('foo')[size] > 0}">但现在它不能在GlassFish中工作了。有没有一种兼容的方法来实现这一点?
发布于 2012-01-20 23:33:09
这似乎是两个服务器上的EL求值错误。有两个非常相似的bug报告:JBoss AS7-2825 (在7.1.0中修正)和Glassfish 17628 (在3.1.2中修正)。这些修复可能也会解决您的问题。否则,是时候报告新的问题了。
但是,我建议使用EL empty关键字。这就是了。
<c:if test="${not empty bean.calculateX('foo')}">顺便说一句,我想知道根据EL规范,[size]语法是否有效来表示非getter方法。此表示法通常用于动态属性。
https://stackoverflow.com/questions/8943517
复制相似问题