$ {form.test}打印“var”,但$ {form.test =='var'}始终为false

时间:2011-08-24 19:32:26

标签: jsp jstl el

当我尝试在JSP中打印一个值时,它会打印名为“var”的值,但是当我尝试在if条件中使用相同的值时,它似乎不是工作。请有人帮助我...... :( :(

<c:out value="${form.test}" /> /* for printing and it's printing "var"*/
<c:if test="${form.test== 'var'}"> /* for if condition which is not working */

2 个答案:

答案 0 :(得分:0)

它应该可以正常工作,假设那些双引号不是值的一部分(即你看到的是var,而不是"var")。也许这个值周围有一些悬空的空白?

您可以通过以下方式调试其中一种:

<pre>|<c:out value="${form.test}" />|</pre> <!-- Should print |var| -->

<c:out value="${fn:length(form.test)}" /> <!-- Should print 3 -->

如果它确实是空白并且您无法在servlet / SQL端修剪它,请考虑使用fn:trim()

<c:if test="${fn:trim(form.test) == 'var'}">

以下taglib声明可以使用JSTL functions taglibrary:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

答案 1 :(得分:0)

尝试:

<c:if test="${form.test eq 'var'}">