gpt4 book ai didi

spring-boot - Thymeleaf + Spring MVC + Rest

转载 作者:行者123 更新时间:2023-12-03 16:12:44 25 4
gpt4 key购买 nike

我不明白,如果 html 模板与我在 ModelAndView 中获得的属性链接,如何将 @Controller 更改为 @RestController 以获取 RESTFull 服务

@Controller
public class MyController{

@GetMapping("/index")
public ModelAndView index(){
return new ModelAndView("/index", name, userService.getUser().getName());
}
}

在 thymeleaf 模板中它看起来像
<p th:text="'Hello, ' + ${name} + '!'" />

但我想转到索引页面,并在后台获取用户名
@RestController
public class MyController{

@GetMapping("/api/user")
public String index(){
return userService.getUser().getName();
}
}

我可以使用ajax来更新标签“p”,但这样使用 thymeleaf 没有任何好处,我可以使用jsp。那么休息时使用 thymeleaf 的最佳方法是什么,它是否合理?

最佳答案

我认为Thymeleaf的目的用于服务器端渲染。
Thymeleaf 是一个 Java 模板引擎,用于处理和创建 HTML、XML、JavaScript、CSS 和文本。
当您使用 JSON API 并解析 JSON 时并为此使用 angular 或任何其他客户端渲染框架。 带有 REST 的 Thymeleaf 不是方法 .

但是如果你想同时使用这两种方式,比如向 Thymeleaf 提供数据并按照以下方法向其他应用程序提供 REST 服务。

@RequestMapping('/foobars')
abstract class FoobarBaseController {

@RequestMapping
abstract listAll()
}

@Controller
class FoobarHtmlController extends FoobarBaseController {
@Override ModelAndView listAll() {
new ModelAndView('foobars/foobarThymeleafTemplate', [foobars: foobarsList])
}
}



@RestController
@RequestMapping('/foobars', produces = MediaType.APPLICATION_JSON_VALUE)

class FoobarJsonController extends FoobarBaseController {
@Override Collection<Foobar> listAll() {
foobarsList
}
}

我希望这能正确解决您的问题。

关于spring-boot - Thymeleaf + Spring MVC + Rest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57802433/

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