2015-08-20 38 views
0

我正在玩弄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。

回答

0

我不知道我是如何忽略這一點,但使用HttpServletRequest的getParameter(「id」)做了伎倆。將一個HttpServletRequest對象作爲參數傳入該方法,使用String addressId = request.getParameter(「id」);它像一個魅力。