Kotlin版Spring Boot控制器无法跳转HTML页面求助
搞定Spring Boot Kotlin页面跳转问题
嘿,我一眼就看到问题所在啦,咱们一步步来解决:
1. 先改控制器的注解——@RestController是罪魁祸首
你现在用的@RestController注解,本质是@Controller加@ResponseBody的组合,它的作用是把方法返回的内容直接当成HTTP响应体返回(比如返回字符串就直接给前端显示"upload"),根本不会触发视图解析器去匹配resources/templates下的HTML页面。
改法很简单,把@RestController换成普通的@Controller就行:
@Controller @RequestMapping("/api") class RestApiController { val logger = LoggerFactory.getLogger(RestApiController::class.java!!) @Autowired lateinit var parsingservice : ParsingService @GetMapping("/index") fun index(response : HttpServletResponse): String { return "upload" } }
2. 补上缺失的模板引擎依赖
Spring Boot想要解析resources/templates里的HTML页面,必须要有模板引擎的支持,比如常用的Thymeleaf。你的Maven配置里完全没加这个依赖,所以就算改了注解,系统也不知道怎么处理你的HTML文件。
在Maven的<dependencies>里加这段依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
因为你用的是Spring Boot 1.5.9.RELEASE,这个依赖会自动匹配对应版本,不用额外写version。
3. 最后检查下基础配置
- 确认
upload.html确实放在src/main/resources/templates目录下,路径别写错了; - 返回的字符串只需要写"upload"就行,不用加
.html后缀,Thymeleaf会自动帮你拼接路径查找文件。
做完这几步,再访问/api/index,应该就能正常跳转到你的upload页面啦~
内容的提问来源于stack exchange,提问作者prepare123
相关产品推荐
相关产品推荐

