Выпуск передачи списка VO от JSP к действию, используя Struts 1.2.9
У меня есть 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>
2 ответа
Фрагмент кода не был полным. Но проблема заключалась в том, что ценности не переходили к действию. Я исправил это, поместив приведенную ниже строку кода в 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>
Спасибо за все полезные комментарии.
Не следует использовать оба типа ввода для одного и того же поля одновременно: html:text
а также html:hidden
, Удалите один из них, который вам не нужен.
Так и должно быть:
<mf:td>
<html:text name="ptc" property="ptcName" />
</mf:td>
и то же самое для полей отдыха.