Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 表单提交不适用于HDIV和Spring MVC的集成_Spring Mvc_Hdiv - Fatal编程技术网

Spring mvc 表单提交不适用于HDIV和Spring MVC的集成

Spring mvc 表单提交不适用于HDIV和Spring MVC的集成,spring-mvc,hdiv,Spring Mvc,Hdiv,我成功地集成了HDIV和Spring MVC。现在HDIV为静态链接生成了安全URL。但当我尝试提交带有参数的链接时,总是会收到错误消息。我知道原因是当生成表单的URL时,参数不是URL的一部分。但我找不到解决办法。请帮忙。非常感谢 表单部分如下所示: <c:url var="url" value="/contract/report/report" /> <form:form action="${url}" method="get"> <table >

我成功地集成了HDIV和Spring MVC。现在HDIV为静态链接生成了安全URL。但当我尝试提交带有参数的链接时,总是会收到错误消息。我知道原因是当生成表单的URL时,参数不是URL的一部分。但我找不到解决办法。请帮忙。非常感谢

表单部分如下所示:

<c:url var="url" value="/contract/report/report" />
<form:form action="${url}"  method="get">
    <table >
        <tr>
            <td><label>Name:</label></td>
            <td><select id="nameId" name="nameId">
                <c:forEach var="c" items="${Users}">
                    <option value='${c.id}'> ${c.name}</option>
                </c:forEach>
            </select> </td>
            <td><Button type="submit" >Submit</Button>  </td>
        </tr>
    </table>
</form:form>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>

姓名:
${c.name}
提交
更新:


我发现解决办法是我必须用spring选项重写select选项,如下所示:

<c:url var="url" value="/contract/report/report" />
<form:form action="${url}"  method="get">
    <table >
        <tr>
            <td><label>Name:</label></td>
            <td><select id="nameId" name="nameId">
                <c:forEach var="c" items="${Users}">
                    <option value='${c.id}'> ${c.name}</option>
                </c:forEach>
            </select> </td>
            <td><Button type="submit" >Submit</Button>  </td>
        </tr>
    </table>
</form:form>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>


谢谢大家。

如果您想向URL添加一个参数,那么这可能会起作用

<c:url var="url" value="/contract/report/report"><c:param name="parameter" value="value" /></c:url>

不要在表单中使用
c:url
,您不需要它:

<form:form action="${pageContext.servletContext.contextPath}/contract/report/report" method="get">
     ...
</form:form>

...

我发现解决方法是,我必须用spring选项重写select选项,如下所示:

<c:url var="url" value="/contract/report/report" />
<form:form action="${url}"  method="get">
    <table >
        <tr>
            <td><label>Name:</label></td>
            <td><select id="nameId" name="nameId">
                <c:forEach var="c" items="${Users}">
                    <option value='${c.id}'> ${c.name}</option>
                </c:forEach>
            </select> </td>
            <td><Button type="submit" >Submit</Button>  </td>
        </tr>
    </table>
</form:form>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>
<form:select path="contractId">
 <c:forEach var="c" items="${Users}">
     <form:option value="${c.id}" label="${c.name}"></form:option>
 <c:forEach var="c" items="${Users}">
</form:select>


谢谢大家。

这将不起作用,因为参数(userId)的值来自下拉列表。对于不需要使用
curl
的表单。如果配置正确,应该有一个带有HDIV状态的隐藏字段。检查生成的源代码。如果使用此方法,则不存在隐藏的HDIV状态。但我将遇到另一个问题。当我单击“提交”按钮时,页面URL变为:。新生成的URL将是一个安全URL,如果没有HDIV状态,HDIV将无法识别它。我得到错误HDIV_参数_NOT_现在存在。