Struts2: изменение начального значения итератора - PullRequest
0 голосов
/ 03 апреля 2012

Я создаю меню, и для каждого компонента меню у меня есть определенный идентификатор:

<li id="ll1"><a href="javascript:{}" id="al1">Component</a></li>

При извлечении компонентов из БД я использовал тег итератора для их динамического отображения:

<s:iterator value="#session.loggedinUser.compNames" status="statusObject" var="parent">
 <s:if test="#session.loggedinUser.compAccess[#statusObject.index] == 0">
  <li id="ll<s:property value="#statusObject.index"/>">
   <a href="javascript:{}" id="al<s:property value="#statusObject.index"/>" onclick="menuBar('none')">
   <s:property value="#parent"/>
   </a>
  </li>
</s:if>

Итератор работает так, как я хочу, и список меню генерируется отлично.Тем не менее, он начинается с List id = 0, как таковой:

<li id="ll0"><a href="javascript:{}" id="al0" onclick="menuBar('Component')">Component</a>

Есть ли способ начать присвоение идентификатора списка с 1 при сохранении начального индекса чтения моего списка итераторов на 0?(Я не хочу терять первое значение в моем списке!)

Если я вас где-то запутал, пожалуйста, попросите разъяснений.

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Избегайте ненужных вычислений.

    <s:property value="#statusObject.count"/> index is 0-based.
    <s:property value="#statusObject.index"/> count is 1-based.
1 голос
/ 03 апреля 2012

Вы имеете в виду <s:property value="#statusObject.index + 1"/> вместо <s:property value="#statusObject.index"/> Если дело обстоит именно так ... вы, возможно, захотите быстро сканировать http://commons.apache.org/ognl/language-guide.html. Struts2 использует OGNL в качестве EL, обычно ... Если вы хотите, чтобы список возвращался по-другому, вам нужно будет использовать JS для изменения параметров перед отправкой.

...