2015-10-25 23 views
0

所以我有点不清楚如何正确使用@PathVariable在我试图在这里上下文。让我解释。SpringMVC:使用表单数据设置路径变量

我有一个带有表格的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调用一个URL作为@PathVariable值。 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的值作为REST风格的URL命令,将其用作@PathVariable。我该怎么做呢?

非常感谢。

回答

0

你可以得到一个很明确的阐述here

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

return "course-form"; 

}

+0

是的,我看到了这一切有关如何使用注释,但如何使用窗体指定的值参数?我希望将URL为“editCourseId”的输入的值设置为URL中的courseId参数。 – user2223059

+0

从客户端,应该是这样的 'code'

'code' – yas