我的servlet中有一个Java对象用户,我将其分配给请求参数" user"在我的JSP中。
此用户有一个布尔方法hasConfidentialAccess(),它返回true或false。我想在我的jsp中调用它,如下所示:
<c:if test="${user.hasConfidentialAccess}">
...
</c:if>
但这不起作用,我的控制台抛出异常:
11:34:49,978错误 [org.apache.catalina.core.ContainerBase [jboss.web] [缺省主机]。[/沃森]。[BasicSearchControllerServlet]] (http- / 0.0.0.0:8080-7)JBWEB000236:servlet的Servlet.service() BasicSearchControllerServlet抛出异常: javax.el.PropertyNotFoundException:该类 &#39; com.commons.framework.security.DefaultUser&#39;没有 property&#39; hasConfidentialAccess&#39;。
如何使这项工作?
答案 0 :(得分:3)
EL确实支持直接访问isX()方法,就像访问getX()方法一样,但前提是isX()方法的返回类型是一个主要的布尔值。
如果返回任何类型的对象(例如Boolean isObjectBooleanTrue()),则EL无法找到该方法,并且会给您一个相当讨厌的EL异常: javax.el.PropertyNotFoundException:该类&#39; com.User&#39;不 没有财产&#39; isConfidentialAccess&#39;。
所以是,&#39;是&#39;方法在EL中有效,但请确保只返回原始布尔值。
针对您的问题: