检查表达式语言中是否存在参数

时间:2012-06-07 13:20:51

标签: jsp parameters jstl el

<c:if test="${param.username}" >
</c:if>

如何检查param.username是否存在?

3 个答案:

答案 0 :(得分:59)

使用not empty检查。

<c:if test="${not empty param.username}" >
</c:if>

修改:如果您的参数格式为?username(无值),则使用${param.username ne null}

会更安全

答案 1 :(得分:38)

如果要检查参数是否存在,只需测试它是否为空,在您的情况下:

<c:if test="${param.username != null}"></c:if>



更广泛的解释:

如果您想查看:

  • 如果yourParam存在/不为null:

    <c:if test="${param.yourParam != null}"></c:if>

  • 如果yourParam不存在/为空

    <c:if test="${param.yourParam == null}"></c:if>

  • 如果yourParam不为空(非空字符串且不为空)

    <c:if test="${!empty param.yourParam}"></c:if>

  • 如果yourParam为空(空字符串或空)

    <c:if test="${empty param.yourParam}"></c:if>

  • 如果yourParam评估为&#39; true&#39;

    <c:if test="${yourParam}"></c:if>

  • 如果yourParam评估为&#39; false&#39; (&#39; true&#39;以外的字符串)

    <c:if test="${!yourParam}"></c:if>

答案 2 :(得分:4)

如果我可以添加评论......

为了测试JSP页面“a-jsp.jsp”中是否存在请求参数“username”,我们可以在页面“a-jsp.jsp”中编写“if”子句:

<c:if test="${empty param['username']>
...
</c:if>

如果请求的URL是:

,我们将通过该“if”子句

http://server/webapp/a-jsp.jsp

http://server/webapp/a-jsp.jsp?username=

如果请求的网址是:

,我们不会

http://server/webapp/a-jsp.jsp?username=foo