SpringBoot集成thymeleaf不生效问题
场景:在做springBoot整合Theamleaf时,用了@RestController注解,在进行试图渲染的过程中,遇到试图没有渲染成功,找到了原因,记录一下。
第一种情况:使用@RestController注解
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
@RestController
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(Map<String,Object> map){
// 默认要去classpath:templates下查找success.html
map.put("hello","你好");
return "success";
}
@RequestMapping("/success")
public String success(Map<String,Object> map){
// 默认要去classpath:templates下查找success.html
map.put("hello","你好");
return "success";
}
}
访问路径结果:
第一个路径返回的是一个页面
第二个路径返回的是一个字符串
第二种情况:使用@Controller注解
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(Map<String,Object> map){
// 默认要去classpath:templates下查找success.html
map.put("hello","你好");
return "success";
}
@RequestMapping("/success")
public String success(Map<String,Object> map){
// 默认要去classpath:templates下查找success.html
map.put("hello","你好");
return "success";
}
}
@RestController相当于@Controller+@ResponseBody
故如果用@RestController返回结果被@ResponseBody序列化成字符串了
需要使用@Controller而非@RestController
参考链接:https://blog.csdn.net/qq_38423256/article/details/118074957

浙公网安备 33010602011771号