2010-10-12 2 views
0

У меня есть этот код:Jsp и: не работает, как ожидалось

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

Когда я просматриваю к СПЯ я получаю это в DIV:

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

Какой сервлетконтейнер? Какая версия сервлета в web.xml? Что делать, если вместо этого вы используете 'c: out'? – BalusC

+0

К сожалению, это Tomcat 4.1 после некоторых поисков я нашел? оператор не поддерживается в этой старой неповрежденной версии. – arinte

ответ

1

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

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

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

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

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

+0

Выполнено, что все еще не работает. – arinte

+0

Является ли вывод тем же самым? – vanje

+0

Это не относится к EL, поэтому нет, это ничего не поможет. – BalusC

1

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

+0

сосет. Я не знаю, почему они никогда не пытались обновить этот сервер ... – arinte