繁体   English   中英

SpringMVC-在jsp中发送嵌套表格

[英]SpringMVC - Send nested form in jsp

我有一个表单( addPassForm ),该表单嵌套在JSP页面中的另一种表单( addStoreFrom )中。 如何将addPassForm表单发送到控制器?

当我尝试发送addPassForm表单时,则改为发送addStoreFrom表单。

    <s:url value="/addStore" var="urlAddStore"/>
    <form:form id="addStoreFrom" modelAttribute="newStore" action="${urlAddStore}" method="POST">
        <table border="1">
            <tbody>
                <tr>
                    <td><form:label path="title">Title*</form:label></td>
                    <td><form:input path="title"/></td>
                </tr>
                ...

                <tr>
                    <s:url value="/addPassForm" var="addPassForm"/>
                    <form:form id="addPassForm" action="${addPassForm}" method="post">
                        ...
                        <td>
                            <input type="submit" value="Add"/>
                        </td>
                    </form:form>
                </tr>
                <tr>
                    <td><input type="submit" value="Save"/></td>
                    <td/>
                </tr>
            </tbody>
        </table>
    </form:form>

仅仅是因为嵌套表单不是有效的HTML模式。 浏览器只是忽略内部的<form></form>标记,而仅看到一种形式。 参考: 在另一个html表单中包含html表单是否有效?

这不是JSP问题(也不是Java问题!),只是一个不正确的HTML问题。 您必须使用连续表格而不是嵌套表格(或其他建议的用户javascript)

连续形式的示例:

<s:url value="/addStore" var="urlAddStore"/>
    <table border="1">
        <tbody>
            <form:form id="addStoreFrom" modelAttribute="newStore" action="${urlAddStore}" method="POST">
            <tr>
                <td><form:label path="title">Title*</form:label></td>
                <td><form:input path="title"/></td>
            </tr>
            ...

            <tr>
                <td><input type="submit" value="Save"/></td>
                <td/>
            </tr>
            </form:form>
            <tr>
                <s:url value="/addPassForm" var="addPassForm"/>
                <form:form id="addPassForm" action="${addPassForm}" method="post">
                    ...
                    <td>
                        <input type="submit" value="Add"/>
                    </td>
                </form:form>
            </tr>
        </tbody>
    </table>

显式调用javascript中的commit submit()函数。添加一个函数并将其绑定到添加按钮的onclick上。 <input type="button" value="Add" onclick="submitAddPassForm()"/> 。在javasrcipt中,只需使用:

function submitAddPassForm(){
   $('#addPassForm').submit();
}

您可以进行ajax发布而不是表单提交

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM