在c:set中使用参数作为var

时间:2016-09-02 13:11:38

标签: jsp tags jstl

我正在尝试创建一个将true / false转换为yes / no

的标记

我有以下标记

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@attribute name="bool"%>
<%@attribute name="varName"%>

<c:choose>
    <c:when test="${bool}">
        <c:set var="${varName}" value="Yes"/>
    </c:when>
    <c:otherwise>
        <c:set var="${varName}" value="No"/>
    </c:otherwise>
</c:choose>

像这样使用

<ecas:yesNo bool="${propCrse.topicsCourse}" varName="proposedText"/>

然而,当它被渲染时,应用程序会抛出以下错误

ERROR 02 Sep 2016 08:02:01,086 errorPage  - /WEB-INF/tags/yesNo.tag (line: 7, column: 8) According to TLD or attribute directive in tag file, attribute var does not accept any expressions

1 个答案:

答案 0 :(得分:0)

你可以只使用

${propCrse.topicsCourse?"Yes":"No"}  

<c:set var="proposedText" value='${propCrse.topicsCourse?"Yes":"No"}'/>