Некоторый HTML / CSS, чтобы обойти недостаток в Struts2 - PullRequest
0 голосов
/ 30 мая 2009

Я пытаюсь получить HTML-страницу вроде: http://jsbin.com/awoco.

Это страница JSP, поэтому она будет содержать скриптлеты. Окончательный вывод HTML будет примерно таким (теги не закрыты для экономии места):

<%
Iterator it = MyList.iterator()
      While (it.hasNext())
      SomeClass all = it.next();
      SomeClass a = it.next();
      SomeClass b = it.next();
%>
      <tr> 
        <td rowspan=3 valign=top>Red<td><%=all.Name()%><td><%=all.price()%><td><%=all.originalPrice()%> 
      </tr> 
      <tr> 
        <td><%=a.Name()%><td><%=a.price()%><td><%=a.originalPrice()%> 
      </tr>  
      <tr >
        <td><%=b.Name()%><td><%=b.price()%><td><%=b.originalPrice()%>
      </tr>    

Как видите, я должен звонить next() 3 раза внутри цикла while. Это связано с тем, что источником данных является список, заполненный таким образом, и я должен показать данные точно так же, как в приведенной выше ссылке.

Есть ли способ каким-либо образом изменить вывод HTML, чтобы мне не приходилось вызывать next() более одного раза, но при этом получалась одна и та же структура таблицы?

1 Ответ

0 голосов
/ 30 мая 2009

Измените ваши структуры данных. MyList должен быть списком (что-то вроде) AgregateClass, который будет содержать 3 члена типа SomeClass (all, a, b), а затем просто перебирать MyList.

Всего несколько советов: Если вы используете Struts2, вы можете использовать тег <s:iterator> для перебора коллекций. Документация

Начиная с JSP 2.0 или около того, вы можете написать ${b.price} вместо <%=b.price()%>

Вам следует изменить теги, добавленные в вопрос, поскольку он не имеет ничего общего с html или css.

...