JSP и?: Не работает, как ожидалось - PullRequest
0 голосов
/ 12 октября 2010

У меня есть этот код:

<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 ]

1 голос
/ 12 октября 2010

Попробуйте это (изменить жирным шрифтом):

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

Мои личные предпочтения следующие: вместо оператора?:

<c:choose>
    <c:when test="${(loopStatus.index % 2) == 1}">
        <div>
    </c:when>
    <c:otherwise>
        <div class="white_bg">
    </c:otherwise>
</c:choose>
1 голос
/ 12 октября 2010

Условный оператор (и EL в тексте шаблона) был введен в JSP 2.0. Скорее всего, вы используете сервлет-контейнер, который не поддерживает JSP 2.0 или объявляет web.xml как Servlet 2.2 или более старый.

1 голос
/ 12 октября 2010

" перед знаком доллара, кажется, не в том месте. Убери это.

...