2012-07-24 26 views
4

我有一段时间试图弄清楚状态索引如何在Struts 2中工作(我使用的是Struts 2.3.4)。我试图遍历项目5-9在我selectedValues字符串列表:Struts 2使用状态索引

<s:iterator value="availableOptions" var="currentSelect" begin="5" end="9" status="status"> 
    <td><s:select list="currentSelect" name="selectedValues" value="selectedValues" cssClass="day-select" /></td> 
</s:iterator> 

但它正在寻找像这样的价值观:selectedValues [0],selectedValues [1],等等,而不是selectedValues [5],selectedValues [6] ...

我似乎能够得到它的工作的唯一方法是通过手动添加5,这似乎是一个杂牌:

<td><s:select list="currentSelect" name="selectedValues[5+#status.index]" value="selectedValues[5+#status.index]" cssClass="day-select" /></td> 

任何帮助将不胜感激。

+0

只是好奇,有你这样'试过'。欲了解更多细节看看这个JIRA票https://issues.apache.org/jira/browse/WW-3314 – 2012-07-24 16:31:42

+0

谢谢,我意识到我应该格式化我的名字属性这样:“selectedValues [%{#status.index }]”。不幸的是,我仍然无法让它为value属性正确工作。开始和结束属性为我的currentSelect列表正确计数(5-9),但不适用于我的selectedValues列表。 – CredK 2012-07-24 18:11:24

+0

所以你试图得到五个选择框,每个提交给相同的动作属性,每个显示'availableOptions'列表的* n * th值? – 2012-07-24 20:03:52

回答

0

尝试增加以下,看看它的工作原理:

<s:iterator value="availableOptions" var="currentSelect" begin="5" end="9" status="status" step="1"> 
     <td><s:select list="currentSelect" name="selectedValues" value="selectedValues[#status.index]" cssClass="day-select" /></td> 
    </s:iterator> 

哪里status.index是起始端功能的使用。
Step是要知道如何开始计数。

+0

谢谢,我试过,不幸的是它仍然无法正常工作。它似乎步骤正确(1),我只是不能得到它在5开始使用name =“selectedValues [#status.index]” – CredK 2012-07-24 18:15:59

+0

@CredK你的意思是价值观是正确的? – GingerHead 2012-07-25 06:27:10

1

你可以试试这个availableOptions[%{#status.index}]selectedValues"