一个表单中的两个提交按钮

时间:2017-05-17 10:42:53

标签: jsp struts2

我有一个表单链接到一个操作,还有两个提交按钮:第一个,"aggiungiSocietà",在html页面上添加了一个Society(使用js函数addRow())并发送插入的值行动......当然,我可以增加一个以上的社会; 第二个"applicaFinal",发送页面上插入的所有值。

我的问题是:我希望第一个按钮也发送所有以前插入的值(通过Struts),但即使它在同一个Struts表单中,我也无法做到。同时,"applicaFinal"不会发送与插入的社团相关的值,只会插入最后一个。 有人可以解释如何解决这个大问题吗?我也愿意改变我的代码的逻辑,如果它对某人没有多大意义的话。

(我会发布.jsp代码的一小部分,而不会在页面中插入20多个选项和字段)

<s:form cssClass="form-validate-jquery" action="DichiarazioniAction"
        id="DichiarazioniForm" name="DichiarazioniForm"
        onsubmit="return addRow();">
<div class="form-group">
                    <s:radio cssClass="styledRadios" name="optionsRadios4_06"
                        id="optionsRadios4_06" onclick="tab4_06chk00(this.value)"
                        list="#{'Si':'S&Iacute','No':'NO'}" required="required" />
                </div>

                <!-- Table4_00 sez4 -->
                <div id="tab4_00sez4"
                    <s:if test='optionsRadios4_06.equals("") || optionsRadios4_06.equals("No")'>style="display: none;"</s:if>>
                    <!-- Tabella -->
                    <br>
                    <table id="table" class="table datatable-basic">
                        <tr>
                            <th>Denominazione</th>
                            <th>Sede</th>
                            <th>P.IVA</th>
                            <th>Codice Fiscale</th>
                            <th></th>
                        </tr>

                        <tbody id="tableInsert">
                            <s:iterator value="listaSocietà" var="theSocietà"
                                status="status1">
                                <s:set var="società-%{#status1.index}" value="theSocietà"
                                    scope="session" />
                                <tr>
                                    <td><s:property value="denominazione" /></td>
                                    <td><s:property value="sede" /></td>
                                    <td><s:property value="partitaIVA" /></td>
                                    <td><s:property value="codiceFiscale" /></td>
                                    <td><div align="right">
                                            <div class="btn-group btn-group-xs">
                                                <s:submit type="button" name="eliminaSocietà"
                                                    id="eliminaSocietà" value="%{#status1.index}"
                                                    data-toggle="tooltip" title="Elimina"
                                                    cssClass="btn btn-default">
                                                    <span class="glyphicon glyphicon-trash"></span>
                                                </s:submit>
                                            </div>
                                        </div></td>
                                </tr>
                            </s:iterator>
                        </tbody>
                    </table>
                    <!-- Button trigger modal società controllate/collegate -->
                    <button type="button" class="btn btn-primary btn-lg"
                        data-toggle="modal" data-target="#myModalHorizontal">Inserisci
                        nuova societ&agrave</button>
                    <div id="prova"></div>
                    <br> <br>
                    <!-- Modal inserimento Società Controllate/Collegate -->
                    <div class="modal large" id="myModalHorizontal" tabindex="-1"
                        role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                        <div class="modal-dialog">
                            <div class="modal-content">
                                <!-- Modal Header -->
                                <div class="modal-header">
                                    <button type="button" class="close" data-dismiss="modal">
                                        <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span>
                                    </button>
                                    <h4 class="modal-title" id="myModalLabel">Inserisci
                                        Societ&agrave</h4>
                                </div>

                                <!-- Modal Body -->
                                <div class="modal-body">
                                    <div class="form-group">
                                        Denominazione: <span class="text-danger"> <b> * </b> </span>
                                        <s:textfield name="tab4_04fld01" id="tab4_04fld01"
                                            cssClass="form-control"
                                            placeholder="Inserire qui la denominazione" />
                                        <div id="errorDenominazione" style="display: none;">
                                            <span class="text-danger">Campo obbligatorio</span>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-12">
                                            <div class="form-group">
                                                Sede: <span class="text-danger"> <b> * </b> </span>
                                                <s:textfield name="tab4_04fld02" id="tab4_04fld02"
                                                    Class="form-control" placeholder="Inserire qui la sede" />
                                                <div id="errorSede" style="display: none;">
                                                    <span class="text-danger">Campo obbligatorio</span>
                                                </div>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="row">
                                        <div class="col-sm-6">
                                            <div class="form-group">
                                                P.IVA: <span class="text-danger"> <b> * </b> </span>
                                                <s:textfield name="tab4_04fld03" id="tab4_04fld03"
                                                    Class="form-control"
                                                    placeholder="Inserire qui la partita IVA" />
                                                <div id="errorP_IVA" style="display: none;">
                                                    <span class="text-danger">Campo obbligatorio
                                                        (Inserire 11 cifre)</span>
                                                </div>
                                                <div id="uniqueP_IVA" style="display: none;">
                                                    <span class="text-danger">Partita IVA gi&agrave
                                                        inserita</span>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-sm-6">
                                            <div class="form-group">
                                                Codice Fiscale: <span class="text-danger"> <b> *
                                                </b> </span>
                                                <s:textfield name="tab4_04fld04" id="tab4_04fld04"
                                                    Class="form-control"
                                                    placeholder="Inserire qui il codice fiscale" />
                                                <div id="errorCF" style="display: none;">
                                                    <span class="text-danger">Campo obbligatorio
                                                        (Inserire un Codice Fiscale valido)</span>
                                                </div>
                                                <div id="uniqueCF" style="display: none;">
                                                    <span class="text-danger">Codice Fiscale gi&agrave
                                                        inserito</span>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="btn-group">
                                        <div>
                                            <div style="width: 100%;">
                                                <button type="submit" name="aggiungiSocietà"
                                                    id="aggiungiSocietà" value="aggiungiSocietà"
                                                    class="btn btn-danger btn-rounded"
                                                    style="float: left; background-color: #455A64; border-color: #455A64;"
                                                    onclick="addRow()">
                                                    <i class="icon-pen-plus position-left"></i>Aggiungi
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                </div>

                            </div>
                        </div>
                    </div>
                    <!-- Tabella end-->
                </div>
<div class="row">
                <div class="col-sm-12">
                    <div align="center" style="margin-top: 50px;">
                        <!-- <button type="reset" class="btn btn-default" id="reset">
                                Reset <i class="icon-reload-alt position-right"></i>
                            </button> -->
                        <button type="submit" name="applicaFinal" value="applicaFinal"
                            class="btn bg-romaCapitale">
                            Applica <i class="icon-pen6 position-right"></i>
                        </button>
                    </div>
                </div>
            </div>
</s:form>

1 个答案:

答案 0 :(得分:0)

请求会话仅针对上次提交持久化。因此,您将丢失先前提交的值,但仅保留最新的值(在您的情况下实际发生)。

解决方案1 ​​

如果你想发送之前提交的“社会”值,我建议在每次“aggiungiSocietà”提交后创建“隐藏”输入以及你的表更新。在您的迭代器中包含以下内容,列出当前插入的所有行

 <input type="hidden" name="varname%{status1.count}" value="varvalue">

在此之后,即使是“applicaFinal”提交按钮也应该发送所有以前添加的行。这是因为这些隐藏的输入对于此提交按钮也是可见的。

解决方案2

如果您要发送之前提交的所有“社会”值,因为用户可能想再次编辑它们,请使用文本输入而不是隐藏输入。这将允许用户编辑以前提交的数据,

 <input type="text" name="varname%{status1.count}" value="varvalue">

<强>更新

如果您希望其他字段在多个提交中保持不变,则需要每次使用这些提交的值初始化您的jsp表单输入。您可以使用与上面相同的代码(soln 2)