bean值显示正确,但在jsp中添加逻辑并且失败

时间:2014-12-26 17:41:29

标签: spring jsp

该属性在bean中设置,在DAO中更新,并在设置如下时在jsp中正确显示:

<html:hidden property="user.strInfoLocked" value="${user.strInfoLocked}" />

当我使用开发人员工具时,值显示如下:

<input type="hidden" name="user.strInfoLocked" value="true">

但是我无法获得在条件语句中使用的值。我试过这个:

<c:choose>
        <c:when test="${user.strInfoLocked eq 'true'}">TRUE </c:when>
        <c:when test="${user.strInfoLocked eq 'false'}">FALSE </c:when>
</c:choose>

我试过这个:

<c:if test= "${user.strInfoLocked == 'true'}">
     <p>My value is TRUE<p>
</c:if>
<c:if test= "${user.strInfoLocked == 'false'}">
     <p>My value is FALSE<p>
</c:if

并且在这两种情况下,都会跳过整个事情。

除了bean之外,我还需要在其他地方声明这个吗?奇怪的是,这些值正确地显示出来,但是当我将它添加到逻辑中时,整个事情就变成了bezerk。

2 个答案:

答案 0 :(得分:0)

这似乎是一种类型。您在以下声明中的eq之前错过了空间,并且您需要相同的eq:

<c:choose>
    <c:when test="${user.strInfoLockedeq 'true'}">TRUE </c:when>
    <c:when test="${user.strInfoLockedeq 'false'}">FALSE </c:when>
</c:choose>

Chnage it to:

<c:choose>
    <c:when test="${user.strInfoLocked}">TRUE </c:when>
    <c:when test="${user.strInfoLocked}">FALSE </c:when>
</c:choose>

答案 1 :(得分:0)

eq和==都应该有效。我建议你显示来自user.strInfoLocked的值,并确保它具有值&#39; true&#39;或者&#39; false&#39;。

如果将bean中的字段定义为boolean,那么布尔值也应该有效。

<c:choose>
    <c:when test="${result.strInfoLocked}">Locked</c:when>
    <c:when test="${!result.strInfoLocked}">Not Locked</c:when>
</c:choose>

我已经将代码测试为字符串和布尔值。两者都有效。