Jsp jstl-选择/何时

Jsp jstl-选择/何时,jsp,jstl,Jsp,Jstl,我有简短的代码: <c:choose> <c:when test="${logging==1}"> write 1 </c:when> <c:otherwise> write 2 </c:otherwise> </c:choose> 写1 写2 问题是这段代码不起作用。不管日志记录是1还是0,代码都会显示“写入2”文本 怎么了?日志记录为int 在您的回答之后,我已将我的代码更改为: <c:ch

我有简短的代码:

<c:choose>
<c:when test="${logging==1}">
    write 1
</c:when>
<c:otherwise>
    write 2
</c:otherwise>

</c:choose>

写1
写2
问题是这段代码不起作用。不管日志记录是1还是0,代码都会显示“写入2”文本

怎么了?日志记录为int

在您的回答之后,我已将我的代码更改为:

<c:choose>
<c:when test="${logging eq 'added'}">
    write 1
</c:when>
<c:otherwise>
    write 2
</c:otherwise>

</c:choose>

写1
写2
现在,我的“日志记录”是一个字符串。它的display“添加了”和${logging['class']}display“class java.lang.String”,但它仍然写“write 2”

我还有申报单

我的web.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

我不能100%确定“${logging==1}”语法是否正确

我以前在这类代码中肯定见过“${logging eq 1}”语法

另外-变量日志是否定义正确


如果可能,您可以显示代码的其余部分吗?

如果值根本不是
int
,而是
字符串,则可能发生这种情况。对于字符串,您需要引用比较值:

<c:choose>
    <c:when test="${logging == '1'}">
        write 1
    </c:when>
    <c:otherwise>
        write 2
    </c:otherwise>
</c:choose>

写1
写2

另一个可能的原因是EL没有被评估。如果
web.xml
根声明错误,则可能会出现这种情况。有关正确的声明示例,请参见的底部。

是否“记录”会话或请求的边界?您使用的是哪个servletcontainer?${logging==1}正确。我甚至比${logging eq 1}更喜欢这个,因为它对我来说更可读。