6.添加json解析:
如果只是返回String类型是没问题了,但大多数需要返回的时候Json类型。
新建一个User类:
package cn.flylolo.model; import lombok.Data; /** * @author FlyLolo * @date 2021/10/11 11:18 */ @Data public class User { private String userId; private String userName; }
这里用到了lombok,需要在build.gradle中添加引用。
implementation 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
注意需要添加第二行,否则在调用对应的get和set方法的时候会出现 “错误: 找不到符号”的错误。
在UserController中添加新的方法:
@GetMapping("/{userId}") public User getName(@PathVariable String userId){ User user = new User(); user.setUserId(userId); user.setUserName(userId + "的名字"); return user; }
将返回一个User对象。
访问http://localhost:8081/gradlemvc/user/testid,返回了406,不可接收错误。
因为返回Json类型,需要添加对应的message-converters
,本例采用FastJson。用下面代码替换springmvc.xml中的<mvc:annotation-driven />
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- 配置Fastjson支持 --> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
这需要在build.gradle中添加FastJson的引用:
implementation 'com.alibaba:fastjson:1.2.78'
再次访问http://localhost:8081/gradlemvc/user/testid,得到了期望的结果。
7. 项目GitHub地址
https://github.com/FlyLolo/JavaSimple/tree/main/src/gradle_mvc