Spring mvc 表单提交不适用于HDIV和Spring MVC的集成
我成功地集成了HDIV和Spring MVC。现在HDIV为静态链接生成了安全URL。但当我尝试提交带有参数的链接时,总是会收到错误消息。我知道原因是当生成表单的URL时,参数不是URL的一部分。但我找不到解决办法。请帮忙。非常感谢 表单部分如下所示: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 >
<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_现在存在。