springboot+thymeleaf使用return “xxx“跳转页面失败

原因:

使用了@RestController

应该使用@Controller

@RestController=Restbody+Controller会自动转成JSON

因此注解改为@Controller即可!

### 检查项目启动状态 为了确认Spring Boot应用程序是否正常启动,可以查看控制台日志中的提示信息。当应用成功启动时,通常会看到如下消息: ``` Tomcat started on port(s): 8080 (http) with context path '' Started ApplicationName in X.XXX seconds ``` 如果遇到异常情况,则会在日志中显示具体的错误堆栈信息。 对于`Whitelabel Error Page`问题,这通常是由于请求映射配置不当或视图解析器缺失所引起的。下面是一些常见的排查方向和解决方案[^1]。 ### 常见原因分析与处理措施 #### 请求路径不匹配 确保控制器类上的@RequestMapping注解定义了正确的URL模式,并且该模式能够被浏览器访问到。例如,在`MyController.java`文件中有这样的设置: ```java @Controller public class MyController { @RequestMapping(value = {"/", "/index.html"}, method = RequestMethod.GET) public String toIndex() { return "index"; } } ``` 这里指定了两个可选的入口地址:“/” 和 “/index.html”,并且只允许GET类型的HTTP请求。因此需要保证客户端发起的是GET请求而不是其他类型(如POST),否则将会收到405 Method Not Allowed响应并触发默认错误页[^2]。 #### 缺少模板引擎支持 如果希望返回HTML页面而非纯文本字符串作为响应体内容,则还需要引入相应的前端模版技术(比如Thymeleaf、FreeMarker等)来渲染视图资源。以Thymeleaf为例,可以在pom.xml里加入依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 之后创建名为`templates/index.html`的静态网页文档放置于src/main/resources目录下即可正常使用[^3]。 #### 使用@ResponseBody替代@RestController 有时开发者可能会混淆这两个注解的作用范围——前者用于指定单个方法的结果直接序列化成JSON/XML等形式发送给调用方;后者则是将整个类内的所有接口都设为此行为。所以针对仅需提供RESTful API服务的情况可以选择继承自`@RestController`简化开发流程;而对于既包含数据交互又涉及页面跳转逻辑的应用场景则建议保留原始形式即单独标注每个action函数为`@ResponseBody`[^4]。 ### 示例代码修正版本 考虑到上述因素后修改后的完整示例应该像这样子编写: ```java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; @Controller public class IndexController { @GetMapping("/") public String index(ModelMap model){ // 可在此处向model对象添加属性供前端展示使用 return "index"; // 对应resources/templates下的html文件名 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天辰尽落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值