2017-10-10 55 views
2

我在迭代器中遇到select问题。每当我在select的名称属性中使用我的迭代器statusindex值时,表单未正确提交。Struts2 - 选择不在迭代器中工作

在我的代码中,我使用first iterator来遍历一个日期列表和一个second iterator来迭代我的记录以显示和编辑它们的数据。

page.jsp

<s:iterator value="daysOfWeek" var="jour" status="stat"> 
    <div class="gu desk-s1 desk-w2" id="plage${stat.index}"> 
     <s:text name="%{#jour}"/> 
     <s:submit type="button" action="addPlage/%{#stat.index}">+</s:submit> 
     <s:iterator value="plageRecords" var="plage" status="innserStat"> 
      <s:if test="%{#plage.jour == #stat.index}"> 
       <s:include value="plage/plage_cell.jsp"/> 
      </s:if> 
     </s:iterator> 
    </div> 
</s:iterator> 

page_cell.jsp

<div class="g rev-width rev-top-m1"> 
    <div class="gu desk-w6"> 
     <label><s:text name="admin.plage.label.endHour" /></label> 
     <s:fielderror class="fieldError" 
         fieldName="plageRecords[%{#innserStat.index}].heureFin"/> 
    </div> 
    <div class="gu desk-w10"> 
     <s:select name="plageRecords[%{#innserStat.index}].heureFin" 
        cssClass="rev-side-m1 rev-width" list="endHourList"/> 
    </div> 
</div> 
+0

”表单未正确提交。“ - 更具体的信息? – Thomas

+0

是的,当然,即使未完成验证,操作也永远不会到达并返回'input'。 –

+1

您是否检查过帖子主体的样子?最好发布[mcve]。 – Thomas

回答

1

你必须在if标签错误表达:

<s:if test="%{#plage.jour == #stat.index}"> 

它应该是

<s:if test="%{#plage.jour == #jour}"> 

如果表达不评估或评价为false然后选择标签将永远不会被添加到形式,且FORMDATA将永远不会被提交。 “

+0

你应该接受这个答案。 –