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

问题描述:

当我试图在JSP中打印一个值时,它打印的值为“var”但是当我试图在使用相同的值,如果条件似乎并不奏效。请有人帮助我... :(:(

<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 */ 

应该做工精细,假设这些双引号不是值的一部分(即你看到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'}"> 

JSTL functions标记库是可以通过下面的taglib声明的方式:

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

它不工作:( – birdy

+1

您需要更具体的关于以具体的问题是能够帮助你。它打印什么?什么是长说?你以任何方式了解我试图解释,以调试问题? – BalusC

+0

cOut工作正常,并且它的打印效果如何,我在cIf中给出了相同的值,但它不起作用:( – birdy

尝试:

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

你能详细解释为什么这会永远有什么区别?难道你不与''不能在JSPX使用becaue它是个预定义XML实体的事实混淆呢?'=='和'eq'应该一样精细,无论 – BalusC

+0

仍然没有woking :( – birdy

+0

我不知道为什么会发生这种情况,当我试图打印它的工作,但当我试图在if语句中给出相同的值时,它不起作用,它有点奇怪,但这是发生了什么 :( – birdy