IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2.2SpringBoot简单表达式 -> 正文阅读

[Java知识库]2.2SpringBoot简单表达式

先写一个Controller输出信息

package com.example.thy;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
public class UserController {
    @RequestMapping("/hello")
    public String user(Model model){
        User user = new User();
        user.setId(11);
        user.setUsername("张三");
        user.setAddress("山东");
        users.add(user);
        model.addAttribute("user",user);
        return "hello";
    }

}

1.${}:变量表达式,用于访问的是容器上下文的变量,比如域变量:request域,session域,?如果没对象,和${} 基本上没区别

<div><td th:text="${user.id}"></td></div>
<div><td th:text="${user.username}"></td></div>
<div><td th:text="${user.address}"></td></div>

2.*{}:选择表达式,是选定的对象,不是整个环境的映射

<div><td th:text="*{user.id}"></td></div>
<div><td th:text="*{user.username}"></td></div>
<div><td th:text="*{user.address}"></td></div>

或者

<div th:object="${user}">
    <div><td th:text="*{id}"></td></div>
    <div><td th:text="*{username}"></td></div>
    <div><td th:text="*{address}"></td></div>
</div>

上面的输出结果都是一样的

3.#{}:thymeleaf中的消息表达式、或者是资源表达式

message.properties
message=你好

hello.html

<div th:text="#{message}"></div>

4.@引用URL地址

<a th:href="@{/user/login}"></a>

5.项目的国际化

设置配置文件的编码格式

先resources创建i18n三个配置文件

login.properties
login_en_US.properties
login_zh_CN.properties

直接进入login.properties

?,如果没有这个,可能是因为,idea的版本是新的,需要安装插件,如下:

?

插件安装之后, 点击加号加上自己的内容

login.properties

login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名


login_en_US.properties

login.btn=Sign in
login.password=Password
login.remember=Remember me
login.tip=Please sign in
login.username=Username


login_zh_CN.properties

login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名

?在application.properties加载i18n?

  spring.messages.basename=i18n.login

?或者application.yml加载i18n?

spring:
  messages:
    basename: i18n.login

?

?之后创建login.html,不要忘记加入xmlns:th="www.thymeleaf.org"

<!DOCTYPE html>
<html lang="en" xmlns:th="www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" name="username" th:placeholder="#{login.username}" required="" autofocus="">
<input type="password" name="password" th:placeholder="#{login.password}" required="">
<!-- 这里传入参数不需要使用 ?使用 (key=value)-->
<a class="btn btn-sm" th:href="@{/login(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/login(l='en_US')}">English</a>
<button type="submit" th:text="#{login.btn}"></button>
</body>
</html>

然后创建MyLocaleResolver

package com.example.thy;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;



public class MyLocaleResolver implements LocaleResolver {

    //解析请求
    @Override
    public Locale resolveLocale(HttpServletRequest request) {

        String language = request.getParameter("l");
        Locale locale = Locale.getDefault(); // 如果没有获取到就使用系统默认的
        //如果请求链接不为空
        if (!StringUtils.isEmpty(language)){
            //分割请求参数
            String[] split = language.split("_");
            //国家,地区
            locale = new Locale(split[0],split[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}

?把国际化解析器添加到容器中

package com.example.thy;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:33:33  更:2022-05-01 15:34:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:00:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码