gpt4 book ai didi

java - 使用 Spring Boot 映射 html 资源

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:29 25 4
gpt4 key购买 nike

我正在使用 Spring Boot 为我正在创建的网站创建 REST API。目前,要访问静态内容,我只需转到资源名称即可。例如,/index.html/dashboard.html。由于我使用的是 REST Controller ,因此无法将页面映射到特定的 URL 结尾,并且没有 web.xml 文件,因为我使用的是 Spring Boot。 (例如,我希望 /dashboard 显示 dashboard.html 文件。)

我应该使用标准 MVC @Controller Controller 来控制我的页面映射,还是有更好的方法来做到这一点?

编辑

我现在可以通过简单地在 URL 中输入文件名来访问静态内容。 (例如 /index.html 将打开索引。)

我想知道的是如何重新映射静态内容。例如,如果我想让 /dashboard 显示 dashboard.html 或者如果我想让 /error 显示 /error.html 等...这将使用户只需转到 www.mydomain.com/dashboard 而不必添加 .html 结尾会更好/更容易。

有没有办法用 Spring Boot 重新映射这样的页面?

编辑 2

我希望承担生成放置在客户系统上的每个页面的 View 的负担。换句话说,我不希望服务器生成每个页面。我希望本质上拥有"template",然后通过 AngularJS Controller 使用的 REST API 将其转换为包含信息的有用页面。

最佳答案

您可以使用 Thymeleaf提供 HTML 网页内容的框架:

首先,添加依赖:

build.gradle

    dependencies {
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
}

然后,创建一个 Controller :

GreetingController.java

@Controller
public class GreetingController {

@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}

}

然后创建一个模板:

在这种情况下,name.html 文件的名称必须与 Controller 中返回的字符串完全匹配 "greeting"

src/main/resources/templates/greeting.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Serving HTML Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>HEY THERE!</p>
</body>
</html>

然后您可以通过导航到本地访问该页面:

http://localhost:8080/greeting

关于java - 使用 Spring Boot 映射 html 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com