c标签中判断条件时,等号与值中间不能加空格,否则默认转换字符串类型。
例如:定义了一个Present实体,成员变量signmark 为Ingeger类型。
<c:forEach items="bidderSeats" var="present" varStatus="list">
<c:when test="${present.signmark == 1 and present.online == 1}">
<li class="check-in1"></li>
</c:when>
<c:forEach>
Caused by: javax.el.PropertyNotFoundException: Property 'signmark' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:268)
at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:221)
at javax.el.BeanELResolver.property(BeanELResolver.java:355)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:95)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:37)
at org.apache.el.parser.AstAnd.getValue(AstAnd.java:37)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:943)
以上代码有两处错误:
- <c:forEach items=“bidderSeats” var=“present” varStatus=“list”>
items=“bidderSeats”—>items=${“bidderSeats”} - <c:when test="${present.signmark == 1 and present.online == 1}">
等号不能有空格。
“present.signmark == 1”—>“present.signmark==1”
此外,还有一种可能错误,是实体类中get方法确实或者变量命名不规则。命名首字母需要小写。