2013-08-04 58 views
1

我有JSP页面和JSP页面上我有这样的:如何使用JSP页面上引号<c:if />标签

<c:when test="${empty findAttributes && param.value1 != null}"> 

     <h1 align="center"><spring:message code="label.msg"/></h1> 
</c:when> 

代替param.value1 !=null我必须使用param.value1 !="",但它简化版,工作,给了我一个错误。请帮助使其正确。

回答

2

正确的方法是使用empty关键字。这包括无效和空虚。

<c:when test="${empty findAttributes && empty param.value1}"> 

如果参数名称value1完全不提供(当时的计算结果为null不是空字符串),你的条件,否则仍然会失败。当提供参数名称而没有像value0=foo&value1=&value2=bar这样的值时,请求参数仅评估为空字符串。但是,如果请求参数完全不存在,如value0=foo&value2=bar那么它的计算结果为null,它与空字符串不同。 !

+0

谢谢,但我的参数不会缺席。我有里面的脚本,它的触发器只是当它是空字符串...所以我不期望为空,当它为空时它会表现不同如何? – UDS

+0

通过简单操作HTTP请求,请求参数可由最终用户控制。空字符串与空不相同。当你使用'empty'时,两种情况都会被覆盖。 – BalusC

+0

有你。谢谢BalusC – UDS

0

您应该使用empty操作JSTL的,而不是使用=

<c:when test="${empty findAttributes && empty param.value1}"> 

从2.1规格:

为了评估空答:

  • 如果A为空,则返回true ,
  • 否则,如果A是空字符串,则返回true。
  • 否则,如果A是一个空数组,则返回true。
  • 否则,如果A是一个空的地图,返回true
  • 否则,如果A是一个空的集合,返回true,
  • 否则返回false。
相关问题