我正在玩弄Spring,并且我正在最困难的时间弄清楚如何在控制器中获取当前页面URL的附加变量。例如,我编辑一个jsp页面中的Address对象,然后提交它,并在我的控制器中转到正确的方法。但是,它并未传递刚刚修改的Address对象的id值(但其他值正确传入)。包含表单的页面获取传递给它的正确的id值,并且我甚至创建了隐藏的输入字段,其中包含地址标识(我遇到问题的标识)和联系人标识(设置为控制器正确)。我想知道的是,如何从我的相应控制器方法的表单页面的url中获取附加变量的值。如果这不可能,那么是否有另一种方法来获得这个价值?获取当前页面的附加URL值 - Spring
这里是我的形式:
<form:form method="post" action="editAddress.html">
<table>
<tr>
<td><form:input type="hidden" path="id" placeholder="<c:out value='${command.id}' />"/></td>
</tr>
<tr>
<td><form:input type="hidden" path="contactId" placeholder="<c:out value='${command.contactId}' />"/></td>
</tr>
<tr>
<td><form:label path="street">Street: </form:label></td>
<td><form:input type="text" path="street" placeholder="<c:out value='${command.street}' />"/></td>
</tr>
<tr>
<td><form:label path="city">City: </form:label></td>
<td><form:input type="text" path="city" placeholder="<c:out value='${command.city}' />"/></td>
</tr>
<tr>
<td><form:label path="state">State: </form:label></td>
<td><form:input type="text" path="state" placeholder="<c:out value='${command.state}' />"/></td>
</tr>
<tr>
<td><form:label path="zip">Zip: </form:label></td>
<td><form:input type="text" path="zip" placeholder="<c:out value='${command.zip}' />"/></td>
</tr>
<tr>
<td><form:label path="galaxy">Galaxy: </form:label></td>
<td><form:input type="text" path="galaxy" placeholder="<c:out value='${command.galaxy}' />"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Update Address"/>
<input type="button" value="Delete Address" action="deleteAddress.html" />
</td>
</tr>
</table>
</form:form>
而对于本网页的URL与下面的结尾:/showAddress.html?id=3
最后,这里是被调用我的控制器方法:
@RequestMapping(value="/editAddress")
public String updateAddress(@ModelAttribute("address") Address address, BindingResult result) {
//address param is coming from form values, not from a java obj
int id = address.getId(); //not getting this value
int contactId = address.getContactId(); //getting this correctly
dbService.updateAddress(address);
return "redirect:showContact.html?id=" + contactId;
}
id = 0,什么时候应该是3.有什么想法?我玩过HttpServletResponse,HttpServletRequest,ModelAndView,HttpSession等,但我似乎无法找出任何结果。这是否只是应用程序设计不佳的结果?任何帮助将不胜感激。谢谢。
注意:id的值将会改变,因为它是我的地址表的PK。