equal symbol expected
实战中遇到的问题和解决方法 2009-12-22 14:57:44 阅读253 评论0 字号:大中小
在工作中遇到了equal symbol expected这个问题,
具体报错是:
org.apache.jasper.JasperException: /archives/listAnswers.jsp(134,62) equal symbol expected
我的代码是:
<s:if test="!'数据未提供'.equals(<s:property value="value"/>)"><s:property value="key.items"/></s:if>
就在网上查看终于找到了原因是:
在使用EL表达式判断两个字符串是否相等时报equal symbol expected异常,结果发现问题的起因是由于单引号和双引号的混乱使用导致的。
解决办法:
将双引号里面的单引号改成单引号,
<s:if test="!'数据未提供'.equals(<s:property value='value'/>)"><s:property value="key.items"/></s:if>
例一:判断字符串是否为true,如果为ture,打印true。
- <c:if test="${str eq "true"}">
- true
- </c:if>
这种写法是错误的。EL表达式外面使用的是双引号,EL表达式内部的字符串也是双引号,这样会报equal symbol expected错误。正确的写法为:
- <c:if test="${str eq 'true}">
- true
- </c:if>
<c:if test="${str eq 'true}"> true </c:if>
或
- <c:if test='${str eq "true"}'>
- true
- </c:if>
<c:if test='${str eq "true"}'> true </c:if>
总结:在使用EL表达式或其它语言时,要养成良好的习惯。尤其是单引号和双引号,不能混合着使用,很容易造成问题。