JSTL没有将我的值打印到屏幕上,而是打印代码本身

时间:2016-01-21 17:05:35

标签: java xml jsp jstl

这段代码有什么问题吗?这是一个JSP片段。

    <c:set var="components" value="${fn:split('IMS,NRF,CAV,NES',',')}"/>
<div style="float:left;width:25%">
    <table cellpadding="2" cellspacing="2" border="1">
        <tbody>
            <c:forEach var="key" items="isIMSAlive,isNRFAlive,isCAVAlive,isNESAlive" varStatus="status">
                <c:set var="componentStatus" value="${applicationMap[key]}"/>
                <c:choose>
                    <c:when test="${componentStatus == 'DOWN' }">
                        <c:set var="color" value="#FF0000"/>
                    </c:when>

                    <c:otherwise>
                        <c:set var="color" value="#00FF00"/>
                    </c:otherwise>
                </c:choose>

            <tr>
                <td background-color: '${color}'>
                    <c:out value="${components[status.index]} : ${componentStatus}"/>
                </td>
            </tr>
            </c:forEach>
        </tbody>
    </table>
</div>

我已经尝试了很多东西来修复它。我在web.xml中运行servlet 2.5所以我知道它不是那样的。我无法发布所有代码,因为我不被允许。这是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">

它应该打印这样的东西: IMS:ALIVE NRF:活着 CAV:活着 NES:活着 但是在一个表格中,所有这些都应该以绿色突出显示,除非它们是DOWN,在这种情况下它们应该是红色的。它目前正在打印实际代码本身,而不是它的价值。我知道servlet正在将hashMap接收到jsp,因为我已经调试了jsp知道并且可以访问hashMap以及它的值。 我试过单引号,双引号,没有引号。我尝试删除某些代码段并进行反复试验。我已经坚持这个问题好几个小时了。任何输入都表示赞赏。感谢。

0 个答案:

没有答案