当前位置: 首页 > 知识库问答 >
问题:

百里香叶Spring支架

蓟清野
2023-03-14

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

@Controller
public class MyController{

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

在胸腺叶模板中

<p th:text="'Hello, ' + ${name} + '!'" />

但我想进入索引页面,在后台获取用户名

@RestController
public class MyController{

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

我可以使用ajax来更新标记“p”,但这样使用thymeleaf并没有什么好处,我可以使用jsp。那么,在Rest时使用thymeleaf的最佳方式是什么?它是否合理?

共有1个答案

岳毅
2023-03-14

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

但如果您想同时使用两种方式,如向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
    }
}

我希望这能正确回答你的问题。

 类似资料:
  • 我用百里香模板发送电子邮件。我有一个模板,比如: 如果为空或,我不想发送电子邮件。我可以设置任何Thymeleaf属性来生成错误并且不会发送邮件吗?因为在没有值的电子邮件中发送“My name is”没有任何意义。 我从Thymeleaf上下文中获取所有值,变量可能是不同类型的,例如、等。我也尝试了以下方法,但它并没有解决我的问题,因为对象总是可用的:

  • 我是Springboot的初学者,所以决定在购物车上工作。似乎找不到org.springframework.expression.spel.SpelEvalue ationException: EL1007E的根:在null上找不到属性或字段'name'。嵌套异常是org.thymeleaf.exceptions.TemplateProcessingException: Exception评估Sp

  • 您好,我是spring新手,我正试图用thymeleaf显示一个简单的html文件,但在呈现视图时遇到了问题。它只显示字符串“index”,而不显示index中的html内容。html。有人能告诉我我做错了什么吗 调度员servle。xml文件: TestController.java: 指数html文件:在webapp/templates/index中定义。html

  • 我正在尝试在我的应用程序中开发一个新的密码功能。当用户打开设置新密码页面时,它有3个输入字段:新密码,再次输入新密码,以及一个隐藏字段uuId。有了这个uuid可以帮助我正确更新数据库记录。我已经使用了双控制器方法,但有些地方出了问题,因为uuid字段没有填充。

  • 大家好,我对thymeleaf和我的静态html页面有一个问题。更具体地说,我有一个spring mvc web应用程序,我也在使用spring security,在我的登录页面中,我想使用thymeleaf,这样spring security可以与另一端的客户端层通信吗?我不想在我的所有html页面中包括thymeleaf,因为我将使用AngularJs 我尝试将登录名放在templates文件

  • 每次访问无效的endpoint或在spring Boot应用程序中的de code内部发生一些托管错误时,我都会在浏览器中收到此错误消息: 这意味着我的Spring Boot正在覆盖它的白色标签错误信息,并尝试用百里香错误模板页面向我显示错误。 我在网上找到了许多关于如何使用这个方案的教程,但没有找到任何向我展示如何不使用Thymeleaf来管理我的错误响应的教程。 我想在我的REST服务器中使用