2012-01-09 60 views
0

我遇到了一个Struts 1表单的问题,它包含一个逻辑:iterate负责创建行,每个行都有一个输入按钮。 问题出现时,我打任何的提交按钮,动态数据不能正常公布和形式不具有这些值,这里有一个例子:Struts 1 - 行提交

<html:form action="/myAction" styleClass="centeredForm" style="display:inline" > 
    <td class="formLabel">City</td> 
    <td class="formControl"> 
    <bean:define id="cities" name="myForm" 
       property="cities" type="java.util.Collection"/> 
    <html:select styleClass="dashSelect" property="city"> 
     <html:option value="">All Cities</html:option> 
     <html:options collection="cities" 
        property="id" labelProperty="value"/> 
    </html:select> 
    </td> 

    ... Other elements ... 

    <logic:iterate id="myObject" name="myForm" property="myObjects" indexId="index" type="com.test.MyObject"> 
     <% String rowClass = index.intValue() % 2 == 0 ? "even-row" : "odd-row"; %> 
    <tr class="<%=rowClass%>"> 
     <td class="result-cell"><bean:write name="myObject" property="id" />&nbsp;</td> 
     <td class="result-cell"><bean:write name="myObject" property="name" />&nbsp;</td> 
     <td class="result-cell"> 
     <html:select styleClass="dashSelect" name="myObject" property="status"> 
      <html:option value="F">Disabled</html:option> 
      <html:option value="T">Enabled</html:option> 
     </html:select> 
     </td> 

     <td> 
     <html:submit/> 
     </td> 

“城市”部分和在逻辑之外休息:迭代,在“myForm”上出现得很好,但“myObject”不是。我甚至尝试用JavaScript函数提交,但无法正常工作。 目前,我所拥有的(HTML:提交我留下作为参考)导致POST包含一堆“状态”参数和我前面提到的正确值。

任何人都可以对此有所了解吗?

让我知道你是否需要更多信息。

非常感谢!

+0

不确定你的意思;你没有使用'indexed'标签(参见[这里](http://struts.apache.org/1.2.7/faqs/indexedprops.html))或者嵌套标签,也没有手动建立索引属性名称 - I尽管如此,还不完全清楚哪些部分无法正常工作。 (看起来在一些标签/ bean中也有很多额外的工作;你是否考虑过使用JSP EL或者至少是EL Struts标签,如果你使用的是过时的容器?) – 2012-01-09 21:51:01

+0

问题是,当我点击提交时,表单没有填充“myObject”,这是我通过逻辑:iterate创建的每一行的信息。 我将在此期间看看索引标签。 – LdSe 2012-01-09 22:19:14

回答

0

代替使用一个单一的形式,我刚使用的形式的逻辑内:迭代,加入索引到相应的属性和使用的Javascript函数来获得其余部分。

谢谢!

0

逻辑迭代:试试这样做它可能会帮助你。

<logic:iterate name="myForm" property="myObjects" id="myObjects" indexId="true"> 
    <tr> 
    <td class="result-cell"><bean:write name="myObjects" property="id" />&nbsp;</td> 
     <td class="result-cell"><bean:write name="myObjects" property="name"/>&nbsp;</td> 
     <td> 
     <html:submit/> 
     </td>  
    </tr> 
</logic:iterate> 
+0

Hello subodh, 不幸的是,bean:write没有值或索引属性。 :( 您是否有意使用另一个? 非常感谢您的回应! – LdSe 2012-01-10 14:06:25

+0

哦!!然后会发生什么,如果您没有使用值和索引,属性它显示任何错误或输出是什么?我的更新答案试图做到这一点,如果有任何问题让我知道。 – subodh 2012-01-11 05:03:57