2012-08-13 58 views
1

您能否告诉我如何以最方便的方式将视图中的多个参数传递给控制器​​的功能?如何将多个参数从视图传递到控制器的方法

JSP视图:

<h2>${topic.getName()}</h2> 
<h3>${topic.getText()}</h2> 

<form:form method="post" commandName="newComment"> 
    <fieldset> 
     <div class="editor-label"> 
      <td><form:label path="text">Input comment</form:label></td> 
     </div> 

     <div class="textarea"> 
      <form:textarea path="text" /> 
     </div> 

     <p> 
      <input type="submit" value="Comment" /> 
     </p> 
    </fieldset> 
</form:form> 

正如你可以看到,我们有话题newComent财产,他们代表的话题和评论的实体。
这里是控制器:

@RequestMapping(value = "/addComment/{topicId}", method = RequestMethod.POST) 
public String saveComment(@ModelAttribute("newComment")Comment comment, BindingResult result, Model model){ 

    validate(comment, result); 
    if (result.hasErrors()) 
     { 
      return "//"; 
     } 
     return "redirect:details/"; 
    } 
} 

评论实体认罚,但我需要主题对象的实例(或它的ID)为好。主题对象的实例在视图中可访问,主题ID是响应的一部分。你能告诉我一个想法,我该如何处理这个问题?

回答

1

如果您有topicId,您可以获得主题模型吗?它在你的道路上。 您可以通过在方法参数中添加@PathVariable注释来获得它。

public String saveComment(@PathVariable String topicId, @ModelAttribute("newComment")Comment comment, BindingResult result, Model model){ 
+0

我确认,它的正确方法 – 2012-08-13 19:28:08

相关问题