| | |
| | | # 控制器 |
| | | # 控制器 Controller |
| | | |
| | | ## 前言 |
| | | |
| | | 在 Spring 中,Controller 是用来接受 Web 的数据请求的。在 AIFlowy 中,我们开发了一个名称为 `@JsonBody` 的注解,用于增强对 Controller 的接收和解析前端传入的 JSON 数据。 |
| | | |
| | | --- |
| | | |
| | | ## @JsonBody 示例代码 |
| | | |
| | | ### 示例 1 |
| | | |
| | | **前端传入内容如下:** |
| | | |
| | | ```json |
| | | { |
| | | "myId": 123 |
| | | } |
| | | ``` |
| | | |
| | | 后端 Controller 可以通过如下的方式来接收: |
| | | |
| | | ```java |
| | | public Result(@JsonBody("myId") int a) { |
| | | System.out.println(a); |
| | | } |
| | | ``` |
| | | |
| | | 以上代码中,a的值为 123。 |
| | | |
| | | ```java |
| | | public Result(@JsonBody(value="myId",required = true) int a){ |
| | | System.out.println(a); |
| | | } |
| | | ``` |
| | | |
| | | 若 JsonBody添加了 required = true的配置,而前端未传入 "myId" 时,则会报错并告知前端必须传入 myId。 |
| | | |
| | | 示例2 |
| | | 前端传入内容如下: |
| | | |
| | | ```json |
| | | { |
| | | "myId":123, |
| | | "other":{ |
| | | "account":{ |
| | | "id":100, |
| | | "name":"michael" |
| | | } |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | 后端 Controller 可以通过如下的方式来接收: |
| | | |
| | | ```Java |
| | | public Result(@JsonBody("myId")int a,@JsonBody("other.account")Account account){ |
| | | |
| | | System.out.println(a); |
| | | System.out.println(account); |
| | | } |
| | | ``` |
| | | |
| | | 以上代码中,a的值为 123。account 的 id 为 100,name 为 “michael”。 |