弹簧MVC中的表格帖子

时间:2013-08-29 14:53:27

标签: spring spring-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";
}

上述方法无效 - 但我需要帮助以获得正确的适应性 任何帮助表示赞赏

1 个答案:

答案 0 :(得分: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";
}

模型中的属性会添加到请求属性中,因此可以在jsp中使用${messageList}