使用 <c:set> 无效

Using <c:set> not working

我正在使用这段代码来进行条件输出。

<c:choose>
    <c:when test="#{selectOneMenuValue eq 'OK'}">
        <c:set var="myVar" value="OK"/>
    </c:when>
    <c:otherwise>
        <c:set var="myVar" value="NOT OK"/>
    </c:otherwise>
</c:choose>
<h:outputText value="${myVar}"/>

selectOneMenuValue 从用户那里收到另一个值时,我渲染表单以再次评估条件语句并将结果打印给用户

上面的代码运行不正常,当selectOneMenuValue eq 'OK'[=时打印"NOT OK" 13=]

但是,下面的代码 well/prints 文本正确:

<c:choose>
    <c:when test="#{selectOneMenuValue eq 'OK'}">
        <h:outputText value="OK"/>
    </c:when>
    <c:otherwise>
        <h:outputText value="NOT OK"/>
    </c:otherwise>
</c:choose>

我不明白有什么区别。

问题是变量 myVarc:choose 块之外不可见。 我相应地更改了变量的范围。