1

我有 JSP 页面,在 jsp 页面上我有这个:

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

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

而不是param.value1 !=null我必须使用param.value1 !="",但它不起作用,给我一个错误。请帮助使其正确。

4

2 回答 2

2

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

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

value1如果根本没有提供参数名称(然后评估为null不为空字符串),您的条件仍然会失败。仅当提供的参数名称没有提供类似的值时,请求参数才会评估为空字符串value0=foo&value1=&value2=bar。但是,如果请求参数完全不存在,value0=foo&value2=bar那么它会评估null哪个与空字符串不同。

于 2013-08-04T16:26:55.050 回答
0

您应该使用emptyJSTL 的运算符而不是使用 !=

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

从 2.1 规范:

评估空 A:

  • 如果 A 为 null,则返回 true,
  • 否则,如果 A 是空字符串,则返回 true。
  • 否则,如果 A 是一个空数组,则返回 true。
  • 否则,如果 A 是空 Map,则返回 true
  • 否则,如果 A 是一个空 Collection,则返回 true,
  • 否则返回假。
于 2013-08-04T16:44:16.897 回答