我有一个JSP,它有两个标签,四个复选框和四个文本字段。由于这是一组数据并且可以是动态的,因此这些字段存储在值对象中并存储在列表中,并且此列表将传递给操作类。
问题在于,当提交表单时,我无法通过表单将更新的值列表导入Struts。我正在使用Struts 1.2.9
以下JSP的代码片段:
<logic:iterate name="monthlyGainLossForm" property="ptcList" id="ptc">
<mf:td>
<html:text name="ptc" property="ptcName" />
<html:hidden name ="ptc" property="ptcName"/>
</mf:td>
<mf:td>
<html:text name="ptc" property="ptcActive" />
</mf:td>
<html:hidden name ="ptc" property="ptcActive"/>
<mf:td>
<html:checkbox name="ptc" disabled="false" property="msaPtcLtcGLType" styleClass="input"/>
<html:hidden name ="ptc" property="msaPtcLtcGLType"/>
</mf:td>
<mf:td>
<html:text name="ptc" readonly="true" property="msaPtcLtcGLAmt" styleClass="input"/>
<html:hidden name ="ptc" property="msaPtcLtcGLType"/>
</mf:td>
答案 0 :(得分:0)
您不应同时对同一字段使用这两种输入类型:html:text
和html:hidden
。删除其中一个您不需要的。
所以应该是这样的:
<mf:td>
<html:text name="ptc" property="ptcName" />
</mf:td>
和休息区相同。
答案 1 :(得分:0)
代码段并不完整。但问题是价值没有传递给行动。我通过将以下代码行放在JSP中来修复它。通过这种方式,我将通过形式实现价值。
<logic:iterate name="monthlyGainLossForm" property="ptcList" id="productTaxCat">
<html:hidden name="productTaxCat" property="ptcId" indexed="true" />
<html:hidden name="productTaxCat" property="ptcName" indexed="true" />
<html:hidden name="productTaxCat" property="ptcActive" indexed="true" />
<mf:tr>
<mf:td><bean:write name="productTaxCat" property="ptcName"/></mf:td>
<mf:td><bean:write name="productTaxCat" property="ptcActive"/></mf:td>
<mf:td><html:checkbox name="productTaxCat" property="msaPtcLtcGLType" styleClass="input" indexed="true"/></mf:td>
<mf:td><html:text name="productTaxCat" property="msaPtcLtcGLAmt" styleClass="label" style="width:100px;vertical-align:middle;" disabled="true" indexed="true"/></mf:td>
<mf:td><html:checkbox name="productTaxCat" property="msaMthlyStcGLType" styleClass="input" indexed="true"/></mf:td>
<mf:td><html:text name="productTaxCat" property="msaMthlyStcGLAmt" disabled="true" styleClass="label" style="width:100px;vertical-align:middle;" indexed="true"/></mf:td>
<mf:td><html:checkbox name="productTaxCat" property="nonMsaPtcGLType" styleClass="input" indexed="true"/></mf:td>
<mf:td><html:text name="productTaxCat" property="nonMsaPtcGLAmt" disabled="true" styleClass="label" style="width:100px;vertical-align:middle;" indexed="true"/></mf:td>
<mf:td><html:checkbox name="productTaxCat" property="nonMsaStcGLType" styleClass="input" indexed="true"/></mf:td>
<mf:td><html:text name="productTaxCat" property="nonMsaStcGLAmt" disabled="true" styleClass="label" style="width:100px;vertical-align:middle;" indexed="true"/></mf:td>
</mf:tr>
</logic:iterate>
感谢所有有用的评论。