Выпуск передачи списка 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> 

и то же самое для полей отдыха.

Другие вопросы по тегам