我正在使用spring框架开发REST WebApp,现在我想知道接收数据的最佳实践。最好使用@RequestParam
或@PathVariable
检索它们?显然,我有兴趣接收userid
或username
这样的简单数据。
举个例子:
@RequestMapping(value = "/getdata", method = RequestMethod.GET)
public String GetData(@RequestParam(value = "memberId", required = true) Integer memberId){
//return data for user with Id = memberid;
}
或
@RequestMapping(value = "/getdata/{memberid}", method = RequestMethod.GET)
public String GetData(@pathvariable int memberid){
//return data for user with Id = memberid;
}
我对REST网络服务很感兴趣
答案 0 :(得分:1)
Rest约定是使用uri变量:
get http://stackoverflow.com/users/3630157
答案 1 :(得分:0)
@PathVarible用于RESTful Web服务。了解什么是REST。方法名称应以小写字母开头。
答案 2 :(得分:0)
这取决于您希望在Controller中接收哪种数据。
您可以使用@PathVariable
从uri获取信息。
地址:
exampleUrl/Application/example/someData
控制器:
@RequestMapping(value="example/{someData}", method = RequestMethod.GET)
public String Controller(@PathVariable("someData") String someData){
...
}
您可以使用@RequestParam从网址获取参数。
地址:
exampleUrl/Application/example/someData?parameter1=hello
控制器:
@RequestMapping(value = "example/someData", method = RequestMethod.GET)
public String Controller(@RequestParam(value = "parameter1", required = false) String parameter1){
...
}
所以没有“更好”的方式,这取决于你想要如何处理你的请求以及你需要什么样的信息。
答案 3 :(得分:0)
创建模型图并将参数名称/值对添加到其中:
@RequestMapping(value="/student/{username}/", method=RequestMethod.GET)
public String adminStudent(@PathVariable String username, @RequestParam String studentid, Model model)
{
model.put("username", username);
model.put("studentid", studentid);
return "student";
}