2013-08-29 57 views
0

彈簧形式如下:表單POST MVC

<form:form method="post" action="list.html"> 

    <table> 
    <tr> 
     <td><form:label path="entity"><spring:message code="label.entity"/></form:label></td> 
     <td><form:input path="entity" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <input type="submit" value="<spring:message code="label.listmessage"/>"/> 
     </td> 
    </tr> 
</table> 
</form:form> 


<h3>Messages</h3> 
<c:if test="${!empty messageList}"> 
<table class="data"> 
<tr> 
    <th>Entity</th> 
    <th>Available</th> 
    <th>&nbsp;</th> 
</tr> 
<c:forEach items="${messageList}" var="message"> 
    <tr> 
     <td>${message.entity}</td> 
     <td>${message.available}</td> 
    </tr> 
</c:forEach> 
</table> 
</c:if> 

我需要寫控制器代碼將捕獲的形式後幫助;並返回信息的顯示列表:

@RequestMapping(value = "/list", method = RequestMethod.POST) 
public String listMessages(String prefixId,Map<String, Object> map) { 
    map.put("list",messageService.getMessagesByEntity(prefixId)); 
    return "redirect:/list"; 
} 

以上wouldnt工作 - 但我需要幫助,以獲得正確的適應。
任何幫助表示讚賞

回答

0

<input type="submit" value="<spring:message code="label.listmessage"/>"/> 

不會做任何事情。 POST表單甚至不會包含它,因爲它沒有名稱。與

<input name="listMessage" type="submit" value="<spring:message code="label.listmessage"/>"/> 

開始當瀏覽器發送請求時,它會添加參數一樣listMessage=[whatever value is in label.listmessage]。您可以檢索該請求參數作爲

@RequestMapping(value = "/list", method = RequestMethod.POST) 
public String listMessages(@RequestParam(value="listMessage") String listMessage, Model model) { 
    // get whatever you need with the request param and put it in the model 
    model.addAttribute("messageList",messageService.getMessagesByEntity(listMessage)); 
    return "redirect:/list"; 
} 

該模型中的屬性添加到請求的屬性,因此可與${messageList} jsp的。

+0

如何提交和捕獲在實體字段中輸入的值? – IUnknown

+0

@IUnknown我不太瞭解spring taglib。你需要找到一種方法來給input元素一個'name'屬性。 –