@RestController
//返回的是字符串,不会被视图解析器解析
@RequestMapping("/hello")//返回的是视图,会被视图解析器解析
通过SpringMVC来实现转发和重定向 - 无需视图解析器;
测试前,需要将视图解析器注释掉
- 默认为forward转发(也可以加上)
redirect转发需特别加
@Controller public class ResultSpringMVC { @RequestMapping("/rsm/t1") public String test1(){ //转发 return "/index.jsp"; } @RequestMapping("/rsm/t2") public String test2(){ //转发二 return "forward:/index.jsp"; } @RequestMapping("/rsm/t3") public String test3(){ //重定向 return "redirect:/index.jsp"; } }
@ResponseBody//他就不会走视图解析器,会直接返回一个 字符串
Controller返回JSON数据
Jackson应该是目前比较好的json解析工具了
当然工具不止这一个,比如还有阿里巴巴的 fastjson 等等。
我们这里使用Jackson,使用它需要导入它的jar包;
1.导入依赖
-
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency>
2.乱码统一解决 我们可以在springmvc的配置文件上添加一段消息StringHttpMessageConverter转换配置!
-
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
3.写个ObjectMapper对象将实体对象转化为Json
-
@Controller public class UserController { @RequestMapping("/j1") @ResponseBody//他就不会走视图解析器,会直接返回一个 字符串 public String json1() throws JsonProcessingException { //jackson,ObjectMapper ObjectMapper mapper = new ObjectMapper(); //创建一个对象 User user = new User(1, "秦疆一号", 12); //System.out.println(user); String str = mapper.writeValueAsString(user); return str; }