如何使用 spring mvc 访问 thymeleaf 模板中的变量

2024-01-08

如何在 thymeleaf 模板内访问在 Spring MVC 中添加到模型中的变量?我有以下控制器代码:

@Controller
public class ThymeLeafController {

    @GetMapping("/thyme")
    public void thymeleaf(ModelAndView modelAndView) {
        modelAndView.addObject("var1", "var1");
        modelAndView.addObject(Arrays.asList("var2", "var3", "var4"));
        modelAndView.getModel().put("var5", "var5");
        modelAndView.getModelMap().addAttribute("var6", "var6");
        modelAndView.getModelMap().addAttribute(Arrays.asList("var7", "var8", "var9"));

        modelAndView.setViewName("thymeleaf");
    }
}

如何访问 thymeleaf 模板内的变量 var1、var5、var6 等?

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <title>Thymeleaf</title>
</head>
<body>
<div th:if="#{var1}"></div>

</body>
</html>

行为:

访问属性取决于它们添加的位置。如果属性已添加到 ModelAndView 对象,则必须通过“${modelAndView.model.xxxx}”访问它们,其中 xxxx 是属性名称。如果属性已添加到模型对象,则只需使用属性名称本身“${attributeName}”即可访问它们。请参阅下面的示例。

控制器:

@GetMapping("/thyme")
public void thymeleaf(ModelAndView modelAndView, Model model) {
    modelAndView.addObject("var1", "var1");
    modelAndView.addObject(Arrays.asList("var2", "var3", "var4"));
    modelAndView.getModel().put("var5", "var5");
    modelAndView.getModelMap().addAttribute("var6", "var6");
    modelAndView.getModelMap().addAttribute(Arrays.asList("var7", "var8", "var9"));

    model.addAttribute("attribute1", "attributeValue1");

}

模板:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Thymeleaf</title>
</head>
<body>
<div th:text="${attribute1}"></div>
<div th:text="${modelAndView.model}"></div>
<div th:text="${modelAndView.model.var1}"></div>
</body>
</html>

Output:



attributeValue1
{var1=var1, stringList=[var7, var8, var9], var5=var5, var6=var6}
var1
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 spring mvc 访问 thymeleaf 模板中的变量 的相关文章

  • Spring MVC 中拦截器和过滤器的区别

    我有点困惑Filter and Interceptor目的 据我从文档中了解到 Interceptor在请求之间运行 另一方面Filter在渲染视图之前运行 但在控制器渲染响应之后运行 那么两者的区别在哪里postHandle 在拦截器和d
  • Thymeleaf:传递 javascript 参数

    我有一个基本的 SpringBoot 应用程序 使用 Spring Initializer 嵌入式 Tomcat Thymeleaf 模板引擎 并打包为可执行 JAR 文件 我想将 POJO 的属性传递给 javascript 函数 tr
  • 如何通过类级别RequestMapping调用请求映射方法级别

    我使用 spring 做了一个简单的程序 当我没有使用类级别 RequestMapping 时 我得到了方法级别 RequestMapping 的答案 但我想同时使用类级别和方法级别 RequestMapping 这是我的控制器代码 pac
  • CSS 未在 Spring Boot 中加载

    我是 spring 框架工作和 spring boot 的新手 我正在尝试使用 CSS javascript js 添加静态 html 文件 文件结构是 我的 html 文件头看起来像这样
  • 如何让 PDF 内容(由 Spring MVC 控制器方法提供)显示在新窗口中

    我是 Spring MVC 的新手 但它的功能给我留下了深刻的印象 我正在使用 3 1 0 RELEASE 并且我必须显示 PDF 来响应 form form 提交 这是我在控制器中编写的 小 代码 RequestMapping value
  • Spring webflow 应用程序:HTTP 302 暂时移动

    我的 java 应用程序中的每个请求都会生成另外 2 个带有 HTTP 302 错误的请求 例如 如果请求查看名为板 html 这个请求是从首页 html 我收到按以下顺序生成的 3 个请求 POST home html 302 Moved
  • 如何在Spring的applicationContext.xml中指定默认范围来请求范围?

    我想让所有 bean 请求默认作用域 但是 Spring 文档说默认作用域是 Singleton 第 3 4 1 和 3 4 2 节http static springsource org spring docs 2 5 x referen
  • 使用 Spring 验证框架验证请求标头

    是否可以将 Spring 验证框架与 Spring MVC 结合使用来验证 HTTP 请求标头的存在和值 要检查presence请求标头的 您不需要验证框架 请求标头参数默认是强制的 如果请求中缺少强制标头 Spring MVC 会自动响应
  • 启动时修改@RequestMappings

    是否可以更改 RequestMapping启动时的值 基本上我想要的是创建一个注释 Api Api Version V1 这意味着请求映射应该修改为 api dogs to api v1 dogs 我想在类级别 适用于所有 和方法级别 重新
  • 部署 Grails 应用程序时出错 - 初学者

    我在部署 Grails 应用程序时遇到问题 一切都在本地测试环境中运行 ERROR localhost startStop 1 错误 context GrailsContextLoader 错误 初始化应用程序 使用名称创建 bean 时出
  • Spring MVC - 自动查找验证器

    假设我有一个像这样的示例实体类 public class Address 和相应的验证器 Component public AddressValidator implements Validator Override public bool
  • 在spring mvc中修改请求URI

    我有一个基于 spring mvc 的应用程序 我想在请求 URI 到达控制器之前修改它 例如 控制器的 RequestMapping 是 abc xyz 但传入的请求是 abc 1 xyz 我想修改传入请求以将其映射到控制器 解决方案1
  • 如何向我的 Spring MVC REST 服务添加错误?

    如果用户没有输入我正在编码的两个名称 我如何更改 更新来自 Spring MVC 的以下 REST 调用以返回错误 未找到 RequestMapping value name method RequestMethod GET Respons
  • Spring @ContextConfiguration

    我正在运行下一个测试 import static org junit Assert assertEquals import org junit Test import org junit runner RunWith import org
  • 将长值设置为日期并在 Thymeleaf 中对其进行格式化

    我的 Thymeleaf 模板中有这一行 td td 我想在格式化之前将这个长值转换为日期 如果已经是一个日期我会这样做 td td 但是 由于它的值很长 我想先将其设为日期 我在文档中找到了一些相关的方法 但是 不符合我的要求 Creat
  • Spring 3 -- 带有 2 个按钮的表单,向控制器方法发送 2 个参数

    我有一个带有 2 个参数的 Spring 3 MVC 表单 我试图发送到我的控制器方法 但收到 404 错误 此问题的不同之处在于 表单有 2 个提交按钮 单击的提交按钮指示其中一个参数的值 这是我的表格
  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • Spring MVC:如何在 JSP 中获取视图名称?

    是一种在 JSP 中访问视图名称的方法 profile在下面的示例中 或者我需要将此名称添加到模型中 RequestMapping value user account method RequestMethod GET return pro
  • 如何测试 POST spring mvc

    我的问题是如何调用它 我可以 MyObject o new MyObject myController save o value 但这不是我想做的 我希望 MyObject 位于请求帖子正文中 如何才能做到这一点 Requestmappin

随机推荐