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

使用Thymeleaf和Spring MVC构建大视图

马博学
2023-03-14

我将使用Spring MVC、Thymeleaf和飞碟在java中生成一份pdf报告(大约20张幻灯片长)。我希望能够根据不同的幻灯片来构造代码,这样我就可以轻松地添加和删除幻灯片,而不是将所有幻灯片的所有代码都放在一块中。最后,在Spring MVC和Thymeleaf完成后,我想我将有很多XHTML和CSS准备好发送到飞碟上生成PDF。

我对Spring MVC没有做太多的工作,但我的感觉是,首先要做控制器的事情,例如获取数据,处理数据,然后将必要的数据放在模型上,这样Thymeleaf可以继续并基于模板和模型上的数据渲染视图。

如何以良好的模块化方式划分java和Thymeleaf中的代码部分?任何人都可以从一个好的设计中获得灵感,或者可以在网上的某个地方找到关于这个的好信息?

共有1个答案

闻人杰
2023-03-14

在您的案例中,我建议将Thymeleaf模板分为三个部分-主模板、幻灯片模板和内容模板。您可以从Spring MVC控制器动态填充报告内容,也可以仅在Thymeleaf中以静态方式构建报告内容。

我提供了我认为最好的骨架模板结构(所有模板都应该在根模板路径上)。若你们想添加幻灯片,你们只需创建一个包含内容的新模板,并在主模板中插入新行。如果要删除幻灯片,只需删除相应的行。

主模板-index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
    <body>
        <th:block th:include="slide :: slide" th:with="content=${'content1'}"></th:block>
        <th:block th:include="slide :: slide" th:with="content=${'content2'}"></th:block>
        <th:block th:remove="tag" th:include="slide :: slide" th:with="content=${'content3'}"></th:block>
    </body>
</html>

幻灯片模板-slide.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
    <body th:fragment="slide">
        <div class="slide">
            <div th:replace="${content} :: content"></div>
        </div>
    </body>
</html>

内容模板1-content1.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
    <body>
        <ul th:fragment="content">
            <li>Content 1</li>
        </ul>
    </body>
</html>

内容模板2-content2.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
    <body>
        <span th:fragment="content">Content 2</span>
    </body>
</html>

内容模板3-content3.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
    <body>
       <p th:fragment="content">
           Content 3
       </p>
    </body>
</html>
 类似资料:
  • 本文向大家介绍Spring Boot使用Thymeleaf + Gradle构建war到Tomcat,包括了Spring Boot使用Thymeleaf + Gradle构建war到Tomcat的使用技巧和注意事项,需要的朋友参考一下 Spring Boot 以Jar的方式部署启动,这个不用介绍了, 之前也介绍了关于 Spring Boot + thymeleaf 的简单使用 ,但是今天遇到一个问

  • 本文向大家介绍SpringMVC中使用Thymeleaf模板引擎实例代码,包括了SpringMVC中使用Thymeleaf模板引擎实例代码的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是SpringMVC中使用Thymeleaf模板引擎的相关内容,具体介绍如下。 Thymeleaf提供了一组Spring集成,允许您将其用作Spring MVC应用程序中全面替代JSP的功能。 Maven依

  • 我试图测试我的Spring MVC控制器,但我不断收到与Thymeleaf模板相关的错误。我真的不想在控制器测试中处理模板错误,因为这不是我真正感兴趣的。当模板不存在时让测试失败是可以的,但现在我收到了与根据错误代码找不到消息相关的错误。 当我运行应用程序时,这个问题不存在。我一直在尝试弄清楚如何设置测试环境来解决这个问题,但在那里我找不到任何有效的方法。现在,我只是真的想让控制器代码正常工作。

  • 我怎么能访问变量我添加到模型中的Spring MVC内胸腺模板?我有以下控制器代码: 如何访问thymeleaf模板中的变量var1、var5、var6等?

  • 我正在学习springsecurity(基于java的配置),我无法使注销正常工作。当我点击注销时,我看到URL更改为http://localhost:8080/logout并获取“HTTP 404-/logout”。登录功能工作正常(即使使用自定义登录表单),但问题是注销,我怀疑重定向的url“localhost:8080/logout”应该类似于“localhost:8808/springte

  • 请注意:在泽维尔的回答之后编辑的回答 我试图在Android Studio中为一个相同的应用程序项目使用不同的构建风格。然而,我似乎有一个可怕的时间配置它适当地工作。 步骤: null **我检查了分级设置,显然使用自动导入已经启用。尽管如此,对build.gradle文件进行更改不会自动更新构建变体。注意:我还尝试使用Build-Rebuild项目和/或Build-Make项目。我仍然必须关闭项