gpt4 book ai didi

java - 如何在Spring Controller 路由中渲染html文件?

转载 作者:行者123 更新时间:2023-12-01 21:35:08 31 4
gpt4 key购买 nike

我正在使用 IntelliJ、Maven 和 Spring 构建本地 Web 服务器。当我返回 Spring 的 @Controller/resources/static/jimi.html 的位置时,Java 服务器只是将字符串打印到屏幕上,而不是渲染 html 文件。

我是 Spring 框架的新手。我按照 start.spring.io 教程设置了一个 java web 应用程序。我目前已经使用 IntelliJ (默认)设置并运行了基础。我的问题如下:我只能弄清楚如何成功地将 String 类型返回到 localhost:8080/jimi。

我通常用Python编写代码,我知道Spring框架有@Controller包装器,类似于Python中的Flask @app.route包装器。我想返回一个 html 文件而不是字符串,但不知道如何返回。我编写了以下内容,成功在本地 Maven 服务器上提供字符串内容:

@Controller
public class ShelfController {

@GetMapping("/")
@ResponseBody
public String home(){
return "You are here";
}

@GetMapping("/jimi")
@ResponseBody
public String jimi(){
//STUCK HERE
}
}

第一条路线“localhost:8080/”工作正常,并将“Your are here”字符串打印到屏幕上。当我打开检查器时,我看到它正在将字符串返回到这个自动生成的 html 文件的正文中。

<html>
<head><head>
<body>
"You are here"
</body>
</html>

文件结构如下所示:

src ____ main ____ java ____ com.book.shelf ____ ShelfController.java
\ \
\ \__ resources ____ templates ...
\ \
\__test ... \__ static ____ jimi.html

我正在寻找类似于 Python-Flask 的(Java-Spring)代码行

@app.route("/jimi")
def jimi():
return render_template("jimi.html")

它将返回给定路由 127.0.0.1:8080/jimi 的 jimi.html 模板

最佳答案

答案是:通过实现 thymeleaf。

1) 将 jimi.html 移动到 src/main/resources/templates 存储库

2) 函数应返回字符串“jimi”(不带“.html”)

3) 从“/jimi”路由中删除@ResponseBody注释

4) jimi.html 需要 < html xmlns:th="http:www.thymeleaf.org">

5) 将 thymeleaf spring 依赖添加到 pom.xml

//SHELFCONTROLLER.JAVA CODE
@Controller
public class ShelfController {

@GetMapping("/")
@ResponseBody
public String home(){
return "You are here";
}


@GetMapping("/jimi")
public String jimi(){
return "jimi";
}
}

//JIMI.HTML CODE
<!-- HTML CODE -->
<html xmlns:th="http:www.thymeleaf.org" lang="en">
<head></head>
<body>Hendirx is a Voodoo Chile</body>
</html>

//ADD TO POM.XML
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

关于java - 如何在Spring Controller 路由中渲染html文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804686/

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