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

Thymeleaf-具有布局的片段

关飞翼
2023-03-14

我正在基于模板进行查看,但在某些区域我想输入片段。

模板:base。html

<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
    <head>
        <title>HELLO</title>             
    </head>
    <body>
        <div layout:fragment="content"></div>
        <footer>
            Year Template
        </footer>
    </body>
</html>

查看:列表。html

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="base">
    <head th:replace="fragments/init :: head">
        <title>Title</title> 
    </head>
    <div  layout:fragment="content">
        <h1> <remove>List</remove> <small></small> </h1>       
    </div>
    <footer th:replace="fragments/init :: footer">
        Year List
    </footer>
</html>

片段:片段/init.html

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:th="http://www.thymeleaf.org">
<head th:fragment="head">
    <title>Title of Fragment</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js"></script>
</head>
<body>
    <footer th:fragment="footer">
        2004 
    </footer>
</body>
</html>

对于头部碎片,它可以正常工作。但在页脚中,但在页脚中,将显示模板的代码。

输出:

<html lang="en"><head>
    <title>Title of Fragment</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css">
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js"></script>
</head>
    <body screen_capture_injected="true">
        <div>
        <h1> <remove>List</remove> <small></small> </h1>        
    </div>
        <footer>
            Year Template
        </footer>
    </body>
</html>

我希望你能帮助我。提前感谢。

使现代化

基础html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
  <head>
    <title>Template title</title>    
  </head>
  <body>
    <header>
      <h1>Template Title</h1>
    </header>
    <section layout:fragment="content">
      <p>Text Template</p>
    </section>   
    <footer layout:fragment="footer">
        <p>Footer template</p>
    </footer>
  </body>
</html>

列表html

<!DOCTYPE html>
<html   xmlns="http://www.w3.org/1999/xhtml"
        xmlns:th="http://www.thymeleaf.org"
        xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
        layout:decorator="base">
  <head th:replace="fragments/init :: head">
    <title>Title List</title>    
  </head>
  <body>
    <section layout:fragment="content">
      <p>Content List page</p>        
    </section>    
    <footer layout:fragment="footer">
        <div layout:include="fragments/init :: extra" th:remove="tag">
            <p>Footer List page</p>
        </div>        
    </footer>  
  </body>
</html>

init.html

<!DOCTYPE html>
<html   xmlns="http://www.w3.org/1999/xhtml"
        xmlns:th="http://www.thymeleaf.org"
        xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
    <head layout:fragment="head">
        <title>Title of Fragment</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css" />
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js"></script>
    </head>
    <body>
         <div layout:fragment="extra">
             <p>Extra Content Fragment </p>             
         </div>    
    </body>
</html>

输出:

     <html xmlns="http://www.w3.org/1999/xhtml"><head>
        <title>Title of Fragment</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css">
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js"></script>
</head>
  <body screen_capture_injected="true">
    <header>
      <h1>Template Title</h1>
    </header>
    <section>
      <p>Content List page</p>        
    </section>   
    <footer>

             <p>Extra Content Fragment </p>             

    </footer>

</body></html>

我设法在页脚中包含代码片段,但我的目标是替换它。

解决方案:

<footer layout:fragment="footer" layout:include="fragments/init :: extra" th:remove="tag">
        <p>Footer List Page</p>
    </footer>

共有1个答案

祝宏放
2023-03-14

布局页面中的页脚不包含片段元素,因此页脚不会更改。

内容页面由Layout.html元素装饰,结果是装饰器页面和内容页面片段的组合(

https://github.com/ultraq/thymeleaf-layout-dialect#decorators-和碎片

 类似资料:
  • 当我启动一个实现viewpager的活动时,viewpager创建了各种片段。我想为每个片段使用不同的布局,但问题是viewpager最大只显示两个布局(在1之后的所有剩余片段上显示第二个布局)。 下面是实现viewpager的SwipeActivity的代码: 这是片段的代码

  • 问题内容: 所以我有一个叫做extends 的类。它使用空布局。我如何将其用作常规组件?当我将它放在另一个窗口中然后添加到窗口中时,它消失了。仅当我直接将其添加到窗口时,它才可见。 编辑:是的,我意识到使用带有null布局的A是不好的做法。实际上是别人的代码,我正在尝试将其用于我的目的,而不必重构它。 问题答案: 仅当我直接将其添加到窗口时,它才可见。 这是因为默认情况下,窗口使用BorderLa

  • 就像上面提到的图像一样。但我将背景色黑色添加到默认,红色添加到19201080。对于19201080个像素分辨率不带红色的模拟器,我这样做是为了在Android中为不同的屏幕尺寸创建不同的UI

  • 我已经使用Android ADT几个星期了,我曾经通过转到:文件来创建新活动 当我选择“新建空白活动”并单击“下一步”时,会显示一个我必须填写的新表格,标题为“片段布局名称”。为什么这突然出现,有谁知道为什么我被迫创建一个片段布局,因为我甚至不想使用它。我还记得我的一个朋友说他大约一周前更新了他的SDK,他说他有同样的问题。我是否应该在XML文档加载后删除其中的片段,或者有没有一种方法可以禁用它,

  • 我试图得到一个布局就像下面的图像为一个游戏在android studio 当前我的xml是 我想在下一个级别增加更多的卡(如lvl 2)我需要为每个级别做几个布局吗?

  • 我正在尝试添加具有线性布局的背景图像作为根布局[Look hierarchy diagram for reference.]我曾尝试使用相对布局作为根布局,但它与嵌套的线性布局重叠。当线性布局作为根布局时,它只显示在底部。 XML代码 查看层次结构图