[英]learning Spring's @RequestBody and @RequestParam
I'm editing a web project that uses Spring and I need to adding some of Spring's annotations. 我正在编辑一个使用Spring的Web项目,我需要添加一些Spring的注释。 Two of the ones I'm adding are @RequestBody and @RequestParam .
我正在添加的两个是@RequestBody和@RequestParam 。 I've been poking around a little and found this , but I still don't completely understand how to use these annotations.
我一直在探索一下并找到了这个 ,但我仍然不完全理解如何使用这些注释。 Could anyone provide an example?
谁能提供一个例子?
Controller example: 控制器示例:
@Controller
class FooController {
@RequestMapping("...")
void bar(@RequestBody String body, @RequestParam("baz") baz) {
//method body
}
}
@RequestBody : variable body will contain the body of the HTTP request @RequestBody :变量体将包含HTTP请求的主体
@RequestParam : variable baz will hold the value of request parameter baz @RequestParam :变量baz将保存请求参数baz的值
@RequestParam annotated parameters get linked to specific Servlet request parameters. @RequestParam带注释的参数链接到特定的Servlet请求参数。 Parameter values are converted to the declared method argument type.
参数值将转换为声明的方法参数类型。 This annotation indicates that a method parameter should be bound to a web request parameter.
此批注指示应将方法参数绑定到Web请求参数。
For example Angular request for Spring RequestParam(s) would look like that: 例如,对Spring RequestParam的Angular请求看起来像这样:
$http.post('http://localhost:7777/scan/l/register', {params: {"username": $scope.username, "password": $scope.password, "auth": true}}).
success(function (data, status, headers, config) {
...
})
@RequestMapping(method = RequestMethod.POST, produces = "application/json", value = "/register")
public Map<String, String> register(Model uiModel,
@RequestParam String username, @RequestParam String password, boolean auth,
HttpServletRequest httpServletRequest) {...
@RequestBody annotated parameters get linked to the HTTP request body. @RequestBody带注释的参数链接到HTTP请求体。 Parameter values are converted to the declared method argument type using HttpMessageConverters.
使用HttpMessageConverters将参数值转换为声明的方法参数类型。 This annotation indicates a method parameter should be bound to the body of the web request.
此批注指示应将方法参数绑定到Web请求的主体。
For example Angular request for Spring RequestBody would look like that: 例如,Spring RequestBody的Angular请求看起来像这样:
$scope.user = {
username: "foo",
auth: true,
password: "bar"
};
$http.post('http://localhost:7777/scan/l/register', $scope.user).
success(function (data, status, headers, config) {
...
})
@RequestMapping(method = RequestMethod.POST, produces = "application/json", value = "/register")
public Map<String, String> register(Model uiModel,
@RequestBody User user,
HttpServletRequest httpServletRequest) {...
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.