ssm整合Thymeleaf的详细教程以及案列

1.需要添加必要的jar包   链接:https://pan.baidu.com/s/1Y3bA9D7_QAHG3jRq670m6A  密码:29m9

  4dbff106f296a12f05ee4d79f3ce1e0d74f.jpg    

acc59a575ce9c4dbdd219ad31b5323bf555.jpg

   cab89f09c08f4354707e0fece5e9a02f66b.jpg

2. SpringMvc.xml配置

    

 <!-- 使用thymeleaf解析 -->

    <bean id="templateResolver"

          class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">

        <property name="prefix" value="/WEB-INF/views/" />

        <property name="suffix" value=".html" />

        <property name="templateMode" value="HTML" />

        <property name="cacheable" value="false" />

        <property name="characterEncoding" value="UTF-8"/><!--不加会乱码-->

    </bean>

    <bean id="templateEngine"

          class="org.thymeleaf.spring4.SpringTemplateEngine">

        <property name="templateResolver" ref="templateResolver" />

    </bean>

    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">

        <property name="templateEngine" ref="templateEngine" />

        <!--解决中文乱码-->

        <property name="characterEncoding" value="UTF-8"/>

    </bean>

   

3. web.xml进行配置

<!-- SpringMVC -->

  <servlet>

    <servlet-name>springMvc</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>classpath:SpringMvc.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>springMvc</servlet-name>

    <url-pattern>/*</url-pattern>

  </servlet-mapping>

  

   <!--配置thymeleaf  -->

    <servlet-mapping>

        <servlet-name>springMvc</servlet-name>

        <url-pattern>*.html</url-pattern>

    </servlet-mapping>  

  4.  编写controller

 @RequestMapping(value = "/thymeleaf", method=RequestMethod.GET)

    public  String  thymeleaf(Model model) {

        model.addAttribute("hello", "jack")

        return "ce";

    }

    5. 编写ce.html

<!DOCTYPE html>

<HTML  xmlns="http://www.thymeleaf.org">   

  <!--声明Thymeleaf命名空间-->

<head>

  <title>ceshi</title>

</head>

<body>

    <h1 th:text="${hello}"></h1>

  </body>

</html>

  //基础知识

             Thymeleaf笔记

 

1.前端html页面标签中引入

   <html xmlns:th=“http://www.thymeleaf.org">

2.表达式

    2.1变量表达式: ${…}

       <span th:text=“${test}">

8a284d8c7f6ec5576fd940a34679d711158.jpg

<li th:each="book : ${books}">

${books}从上下文中选择名为books的变量,并在th:each中使用循环将其评估为迭代器

     2.2选择表达式: *{…}

选择表达式就像变量表达式一样,它们不是整个上下文变量映射上执行,而是在先前选择的对象。 它们看起来像这样:

*{customer.name}

它们所作用的对象由th:object属性指定:

<div th:object="${book}">

  ...

  <span th:text="*{title}">...</span>

  ...

</div>  

024756b9f9d3f567eb721cb1fe9025dc425.jpg

         2.3消息表达式: #{…}  国际化时使用,也可以使用内置的对象,比如date格式化数据

          

          2.4链接表达式: @{…}  用来配合link src href使用的语法

 

<link rel="stylesheet" type="text/css" th:href="@{/css/index.css}"></link> 

链接表达式也可以是绝对的:

<a th:href="@{http://www.mycompany.com/main}">...</a>

          2.5片段表达式: ~{…}     用来引入公共部分代码片段,并进行传值操作使用的语法

 

           片段表达式是一种简单的方法用来表示标记的片段并将其移动到模板中。 由于这些表达式,片段可以被复制,传递给其他模板的参数等等。最常见的是使用th:insert或th:replace来插入片段

~{templatename::fragmentname}

templatename:模版名,Thymeleaf会根据模版名解析完整路径:/resources/templates/templatename.html,要注意文件的路径。

fragmentname:片段名,Thymeleaf通过th:fragment声明定义代码块

如:创建footer.html目前测试在本页面才能够引用

<!--th:fragment定义代码块标识-->

<footer th:fragment="copy">

&copy; 2011 The Good Thymes Virtual Grocery

</footer>

<!--三种不同的引入方式-->

<div th:insert="footer :: copy"></div>

<div th:replace="footer :: copy"></div>

<div th:include="footer :: copy"></div>

<!--th:insert是在div中插入代码块,即多了一层div-->

<div>

    <footer>

    &copy; 2011 The Good Thymes Virtual Grocery

    </footer>

</div>

<!--th:replace是将代码块代替当前div,其html结构和之前一致-->

<footer>

&copy; 2011 The Good Thymes Virtual Grocery

</footer>

<!--th:include是将代码块footer的内容插入到div中,即少了一层footer-->

<div>

&copy; 2011 The Good Thymes Virtual Grocery

</div>

 

  3. 文字

    • 文本文字,例如:'one text', 'Another one!',…
    • 数字文字,例如:0,10, 314, 31.01, 112.83,…
    • 布尔文字,例如:true,false
    • Null文字,例如:Null
    • 文字标记,例如:one, sometext, main,…
  • 文本操作:
    • 字符串连接:+
    • 文字替换:|The name is ${name}|
  • 算术运算:
    • 二进制操作:+, -, *, /, %
    • 减号(一元运算符):-
  • 布尔运算:
    • 二进制运算符,and,or
    • 布尔否定(一元运算符):!,not
  • 比较和相等:
    • 比较运算符:>,<,>=,<=(gt,lt,ge,le)
    • 相等运算符:==, != (eq, ne)
  • 条件操作符:
    • If-then:(if) ? (then)
    • If-then-else:(if) ? (then) : (else)
    • Default: (value) ?: (defaultvalue)

4.标准的URL语法

@{…}

  1. 绝对网址

<a th:href="@{https://www.yiibai.com/thymeleaf/}">

2. 上下文相关URL

  URL:http://localhost:8080/myapp来访问,myapp就是上下文名称。

 <a th:href="@{/order/list}">

3. 与服务器相关URL

    <a th:href="@{~/billing-app/showDetails.html}">

4. 协议相关URL

   <script th:src="@{//scriptserver.example.net/myscript.js}">...</script>

5. 添加参数

<a th:href="@{/order/details(id=3)}">

上面示例代码,最终将输出为:

<a href="/order/details?id=3">

也可以添加几个参数,用逗号分隔它们:

<a th:href="@{/order/details(id=3,action='show_all')}">

HTML

上面代码将输出结果为:

<!-- 注意&符号在标签属性中进行HTML转义... -->

<a href="/order/details?id=3&action=show_all">

还可以使用正常参数的路径变量的形式包含参数,但在URL的路径中指定一个占位符:

<a th:href="@{/order/{id}/details(id=3,action='show_all')}">

HTML

上面输出结果为:

<a href="/order/3/details?action=show_all">

 

包括条件表达式,例如:

<a th:href="@{(${user.admin}? '/admin/home' : ${user.homeUrl})(id=${order.id})}">

6.简单格式化输出 

  4286e1db9f3a29bc631aafa02f9ecfc898e.jpg

1d75fa43b3964d26ead8ecb09af46ae6b84.jpg

7.迭代列表 

16e42630d97f29e643f4ee691e48a2b90d0.jpg  

f1e2a7a78218ec1ae3edaf849696eb56576.jpg

 

          条件判断针对于价格大于100,在备注一栏显示字体特殊提供 

246020011facf89f4717a1e7ae68108f4f7.jpg

 

 

8.form表单提交数据 

08e6fd943fd5f52376d22f423c70eb50d00.jpg

转载于:https://my.oschina.net/shanesen/blog/1839999

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值