Jsp和?:没有按预期工作

时间:2010-10-12 15:23:06

标签: jsp el conditional-operator

我有这段代码:

<c:forEach var="product" items="${products}" begin="${begin}" end="${end}" varStatus="loopStatus" step="1">
    <div class="home_app "${loopStatus.index % 2 == 0 ? '' : 'white_bg'}">

当我浏览jsp时,我会在div中找到它:

<div }="" white_bg="" :="" ?="" 0="" 2="=" %="" ${loopstatus.index="" class="home_app ">

3 个答案:

答案 0 :(得分:1)

美元符号前的"似乎位于错误的位置。去掉它。

答案 1 :(得分:1)

试试这个(以粗体显示):

<c:forEach var="product"
           items="${products}"
           begin="${begin}"
           end="${end}"
           varStatus="loopStatus"
           step="1">
    <div class="${loopStatus.index % 2 == 0 ? '' : 'white_bg'}">

我个人的偏好是以下而不是?:operator:

<c:choose>
    <c:when test="${(loopStatus.index % 2) == 1}">
        <div>
    </c:when>
    <c:otherwise>
        <div class="white_bg">
    </c:otherwise>
</c:choose>

答案 2 :(得分:1)

在JSP 2.0中引入了条件运算符(以及模板文本中的EL)。您可能正在运行不支持JSP 2.0的servletconainer,或者将web.xml声明为Servlet 2.2或更早版本。