2013-08-29 3 views
0

Форма пружины следующим образом:Форма пост весной 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"; 
} 

Вышеуказанное не работает - но мне нужна помощь, чтобы получить правильную адаптацию.
Любая помощь приветствуется

ответ

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}.

+0

Как подать и зафиксировать значение, введенное в поле объекта? – IUnknown

+0

@IUnknown Я не очень хорошо знаю весенний taglib. Вам нужно найти способ присвоить входному элементу атрибут 'name'. –

Смежные вопросы