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

我可以将spring thymeleaf与LayoutDialogue一起使用吗?

洪弘壮
2023-03-14

就像在主题中一样,我可以使用Thymeleaf布局方言和spring吗?我必须使用Spring标准方言吗?

网上有这么多的资料,这让我很困惑。

我已经开始使用布局方言,但我无法使用整个应用程序。

这是我的模板主文件:

<!DOCTYPE html>
<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
    <head>
        <title>DERP></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" media="all" href="../../css/template.css" th:href="@{/css/template.css}" />
        <link rel="stylesheet" type="text/css" media="all" href="../../lib/font-awesome-4.2.0/css/font-awesome.min.css" th:href="@{/lib/font-awesome-4.2.0/css/font-awesome.min.css}" />
        <link rel="stylesheet" type="text/css" media="all" href="../../lib/bootstrap-3.3.1-dist/css/themes/slate/bootstrap.min.css" th:href="@{/lib/bootstrap-3.3.1-dist/css/themes/slate/bootstrap.min.css}" />
        <link rel="stylesheet" type="text/css" media="all" href="../../lib/animate/animate.css" th:href="@{/lib/animate/animate.css}" />
    </head>
    <body>
        <div th:include="fragments/bodyHeader" th:remove="tag">
            for prototyping
        </div>

        <div id="mainMenu">
              <div class="navbar navbar-default">
                <div class="navbar-header">
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                  </button>
                  <a class="navbar-brand" href="#">DERP</a>
                </div>
                <div class="navbar-collapse collapse navbar-responsive-collapse">
                  <ul class="nav navbar-nav">
                    <li class="active"><a href="#">Active</a></li>
                    <li><a href="#">Link</a></li>
                    <li class="dropdown">
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
                      <ul class="dropdown-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Dropdown header</li>
                        <li><a href="#">Separated link</a></li>
                        <li><a href="#">One more separated link</a></li>
                      </ul>
                    </li>
                  </ul>

                  <ul class="nav navbar-nav navbar-right">
                    <li class="dropdown">
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-home"></i> Customer <b class="caret"></b></a>
                      <ul class="dropdown-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                      </ul>
                    </li>
                    <li class="dropdown">
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> User <b class="caret"></b></a>
                      <ul class="dropdown-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                      </ul>
                    </li>
                  </ul>
                </div>
              </div>
        </div>
        <!-- #mainMenu ENDS-->
        <div layout:fragment="header">Static header</div>
        <div layout:fragment="pageContent">Demo static page content</div>
        <div id="pageFooter" class="panel panel-default">
            <div class="panel-body">Copyright Daniel Korbel 2014</div>
        </div>
        <div id="javaScriptSection">
            <script type="text/javascript" src="../../lib/jquery/jquery-2.1.1.min.js" th:src="@{lib/jquery/jquery-2.1.1.min.js}"></script>
            <script type="text/javascript" src="../../js/template.js" th:src="@{/js/template.js}"></script>
            <script type="text/javascript" src="../../lib/noty-2.3.1/js/noty/packaged/jquery.noty.packaged.min.js" th:src="@{/lib/noty-2.3.1/js/noty/packaged/jquery.noty.packaged.min.js}"></script>
            <script type="text/javascript" src="../../lib/noty-2.3.1/js/noty/layouts/topRight.js" th:src="@{/lib/noty-2.3.1/js/noty/layouts/topRight.js}"></script>
            <script type="text/javascript" src="../../js/notyStarter.js" th:src="@{/js/notyStarter.js}"></script>
            <script type="text/javascript" src="../../lib/bootstrap-3.3.1-dist/js/bootstrap.min.js" th:src="@{/lib/bootstrap-3.3.1-dist/js/bootstrap.min.js}"></script>
        </div>
    </body>
</html> 

以及控制器返回的我的示例主体文件:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout/template">
    <div layout:fragment="pageContent">
        <p>LIST</p>
    </div>
</html>

但不幸的是,这段代码只适用于布局方言。

有人能帮我把代码转换成spring标准方言吗?

我的手机配置:

public class ThymeleafConfig {

    @Bean 
    public ServletContextTemplateResolver templateResolver() {
        ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
        resolver.setPrefix("/WEB-INF/view/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML5");
        resolver.setOrder(1);
        resolver.setCacheable(false);
        return resolver;
    }

    @Bean 
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());
        templateEngine.setDialect(new SpringStandardDialect());
        //templateEngine.setDialect(new LayoutDialect());
        return templateEngine;
    }

    @Bean 
    public ThymeleafViewResolver viewResolver() {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setCharacterEncoding("UTF-8");
        return viewResolver;
    }

}

共有1个答案

齐栋
2023-03-14

向templateengine添加LayoutDialogue应该足以让它工作。不要使用设置方言。您应该有一个adddialentsetAdditionalDialents方法或类似的方法。(我使用xml配置,因此不知道确切的名称)

更新:添加了xml配置

<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <beans:property name="templateResolvers">
        <beans:set>
            <beans:ref bean="servletContextTemplateResolver" />
            <beans:ref bean="classLoaderTemplateResolver" />
        </beans:set>
    </beans:property>
    <beans:property name="dialects">
        <beans:set>
            <beans:ref bean="thymeleafSpringDialect" />
        </beans:set>
    </beans:property>
    <beans:property name="additionalDialects">
        <beans:set>
            <beans:bean class="nz.net.ultraq.thymeleaf.LayoutDialect" />
            <beans:bean
                class="org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect" />
            <beans:bean class="ch.mfrey.thymeleaf.extras.with.WithDialect" />
            <beans:bean class="ch.mfrey.thymeleaf.extras.cache.CacheDialect" />
        </beans:set>
    </beans:property>
</beans:bean>
 类似资料:
  • 问题内容: 我正在使用BeautifulSoup抓取网址,并且我有以下代码 现在在上面的代码中,我们可以用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以使其更有帮助吗? 问题答案: 不,BeautifulSoup本身不支持XPath表达式。 另一种库,LXML, 不 支持的XPath 1.

  • 问题内容: 我正在使用大猩猩架构根据用户的表单提交来填充结构。我的结构包含,并且我目前收到以下错误: 如何在要使用大猩猩架构填充的结构中使用? 问题答案: 我创建了一个要点(https://gist.github.com/carbocation/51b55297702c7d30d3ef),它显示了解决此问题的一种方法。您需要为以下四种类型的每一种创建一个:sql.NullString,sql.Nu

  • 问题内容: 我有一类范围 如果我使用正常的工作原理是完美的,但是必须等待每个命令完成并且每个查询需要8秒钟,所以10个查询需要80秒钟。 在并行版本中,如果仅打印范围,则效果很好,但如果尝试执行命令,则说明该过程已在进行中。 {“操作已经在进行中。”} 我该如何解决? 问题答案: Npgsql连接不能同时使用-在任何给定时间点只能运行一个命令(换句话说,没有MARS支持)。 打开多个连接以并行执行

  • 问题内容: 是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作? 问题答案: 似乎有一个重大更新,导致原来的答案不再起作用。我找到了这个答案,解释了现在如何使用。我已经在下面复制了相关代码。 注意:原始答案没有提及你还需要使用安装

  • 我需要一些目前在JavaFX中找不到的功能。比如机器人或托盘图标。 我知道这些工具确实适用于JavaFx应用程序。但是可以使用它们吗?有什么需要我考虑的吗?

  • 问题内容: 我看到了其他有关xpath 2.0的问题,它显然简化了字符串表达式。我正在使用Firefox 3.5.5和Selenium 1.0.1。 如何检查我的Firefox和Selenium版本是否支持它? Selenium是否遵循Firefox的内置Xpath实现? 在那种情况下,如果我开始将另一个(也许是较旧的)浏览器与selenium一起使用,是否会因为期望xpath 2.0而遇到问题?