【Thymeleaf模板引擎】

1. 变量表达式         ${...}        例:<p th:text=”${变量}”>原生内容</p>

        ①Model中的属性

                8种Java基本类型之一  =》直接引用

                对象类型  =》name.attribute

        ②Spring管理的对象 (#locale,#ctx,#arrays,#dates等)

                ${#对象名.成员}

由于经常需要获取表单传给Servlet的参数,为此专门定义一个快捷名称param,不用加前缀#:

${param.表单组件名}

2. 被选对象表达式         *{...}

① th:object 把变量表达式定义成被选对象

② 在这个HTML的后代元素中,可以在被选对象表达式中引用它

说明:定义类A、B、C,创建A的对象a存入Model中,C中有变量s、i

<div th:object="${a.b.getC()}">
    <p th:text="*{s}"></p>
    <p th:text="*{i}"></p>
</div>

3. 消息表达式         #{来自国际化配置文件中的属性}

默认国际化配置文件名:messages_语言_地区.properties

放在resouces目录下(与application.propertier同级)

  messages.properties

answer.tip=Message from server:
login.password=Password
login.submit=OK
login.user=Use

  在模板中引用配置文件:#{login.user}

改变国际化配置文件的位置:在resource目录下新建目录,一般为i18n

在application.properties中指明:spring.messages.basename=i18n.mymsg

IDEA中输入配置文件

① 从Idea的菜单“File” =》 “Setting” =》 “Editor”,设置Default encoding为utf - 8

② 在工程资源管理器中的resources上,右键菜单 =》 new =》 Resource Bundle

 输入基础名称;点加号;输入定制的局部化选项如zh_CN

 在配置文件中输入属性。在编辑区的下方点“Resource Bundle”切换视图;

     新版IDEA需要自行在 settings 菜单中打开 Plugins 下载插件Resources Bundle Editor

     输入自定义的属性名、输入属性值

在网页中设置语言选项

① 在网页中设置语言超链接(打开新网页也能使用该语言选项)     

eg: <a href="?locale=zh_CN">中文</a>
'?'后面是GET方式提交的参数,参数名为locale,值为局部化信息,意思是按照语言选项来显示当前页

② 替换 Spring 默认的局部化解析器,在WebMvcConfigurer的子类中进行

 优点:与控制器充分解耦

@Configuration
//实现 WebMvcConfigurer 
public class MyConfig implements WebMvcConfigurer {
    @Bean
    public LocaleResolver localeResolver(){
        SessionLocaleResolver slr = new SessionLocaleResolver();
        slr.setDefaultLocale(Locale.US);
        return slr;
    }
    //返回 SessionLocaleResolve 对象,它用 Session 存储局部化信息,以便在多网页间共享

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor(){
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        return lci;
    }
    //创建一个拦截器,默认拦截所有具有参数名称locale的url,然后把它的值保存到Session

    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(localeChangeInterceptor());
    }
    //注册Locale拦截器
}

@Configuration

表示该类是一个配置类,交给Spring管理,而不用自己创建对象、调用方法令其起作用。

@Bean

表示方法返回的对象交给Spring管理,Spring知道何时使用它们,开发者只要设计好对象的功能。

4. 链接表达式

超链接a和link的href属性 =》th:href

img和script的src属性 =》th:src

表单的action属性 =》th:action

它们用链接表达式赋值,例如:th:href=@{url路径(参数名1=${...},...,参数名n=${...})}

① 用于根据Model自动生成url的参数

② url重写 —— Thymleaf会判断浏览器端是否禁用了Cookie,若禁用了,就把 Sesssion ID 以url参数的形式发送给服务器,这种技术称为url重写

Session ID是存储在客户端的Cookie中的,如过设置浏览器禁止Cookie,那么浏览便无法每次把Session ID放到HTTP请求头中了,服务端也就每办法区分哪些请求来自同一个会话

5. 字面量 —— 作为属性值或其一部分

文本字面量:单引号括起来的字符序列

        若只含字母、数字、方括号、点、连字符-、下划线_,单引号可以省略。

    <p>The Element span is a <span th:text="'Text Literal'"></span>.</p>
  = <p>The Element span is a <span>Text Literal</span>.</p>

数字字面量:可以是负数、科学计数法

        负数、减号容易被误当作文本字面量

    <p>1.6+0.4=<span th:text="1.6+0.4">Sum</span></p>
  = <p>1.6+0.4=<span>2.0</span></p

布尔型字面量:true,false

null字面量:null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值