SpringMVC:使用表单数据设置pathvariable

时间:2015-10-25 19:36:41

标签: java forms spring-mvc

所以我对如何在我尝试的上下文中正确使用@PathVariable有点不清楚。让我解释一下。

我有一个带有表格的JSP页面。该表包含数据库中表中的所有记录。一切正常。

在表格底部有按钮。添加,编辑,删除。它们都使用单独的表单,因为我想为每个表单分别使用URL路径/ HTTP方法。

为了实现这一点,我正在使用JQuery,以便当我在表单上点击提交时,它会检索当前所选记录的ID值。所有这些都很完美,而不是我所要求的。

以下是提交行动的表单:

<form:form id="editForm" action="./${courseId}.html" path="courseId" method="get">
    <input type="hidden" id="editCourseId" name="courseId"/>
    <input class="btn btn-lg btn-default btn-shadow" type="submit"
                    value="Edit"/>
</form:form>

所以,我想要的是这个表单调用一个带有courseId作为@PathVariable值的URL。 courseId的值包含在名为courseId的隐藏输入字段中。同样,该输入字段的值是由JQuery代码设置的,我已经测试了它,它似乎工作得很好。

我想要的是使用courseId作为@PathVariable,并让它在以下控制器方法中工作:

@RequestMapping (value="/{courseId}", method=RequestMethod.GET)
public String editCourse(Model model, 
        @PathVariable ("courseId") String courseId){
    System.out.println("CourseID: " + courseId);

    return "course-form";
}

显然,该方法仍处于早期阶段,只是试图确认其有效。

那么,我该怎样做才能实现这一目标?同样,我想在URL中传递courseId的值,作为RESTful样式URL命令,将其用作@PathVariable。我该怎么做?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以获得非常明确的解释here

@RequestMapping (path="/{courseId}", method=RequestMethod.GET)
public String editCourse(Model model,
@PathVariable String courseId){
System.out.println("CourseID: " + courseId);

return "course-form";

}