我想从控制器返回一个简单的 html 页面,但我只得到文件的名称而不是它的内容。为什么?
这是我的控制器代码:
@RestController
public class HomeController {
@RequestMapping("/")
public String welcome() {
return "login";
}
}
这是我的项目结构:
[
原文由 Gustavo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想从控制器返回一个简单的 html 页面,但我只得到文件的名称而不是它的内容。为什么?
这是我的控制器代码:
@RestController
public class HomeController {
@RequestMapping("/")
public String welcome() {
return "login";
}
}
这是我的项目结构:
[
原文由 Gustavo 发布,翻译遵循 CC BY-SA 4.0 许可协议
按照以下步骤操作:
必须将 html 文件放在 resources/templates/
将 @RestController
替换为 --- @Controller
如果您正在使用任何视图解析器,请将其移除。
您的控制器方法应返回不带扩展名的视图文件名,如 return "index"
包括以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>`
原文由 Chandan Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
当使用
@RestController
像这样:这与您在普通控制器中执行此操作相同:
使用
@ResponseBody
返回return "login";
作为字符串对象。您返回的任何对象都将在 HTTP 正文中作为 JSON 附加为payload
。这就是为什么您在响应中只得到
login
的原因。