Thymeleaf:運算符($、*、#、@)&國際化


1、運算符

(1)$

在controller層寫入數據:

@Controller
public class TestController {
    @RequestMapping("/test")
    public String hello(Model model){
        Student student=new Student();
        student.setSname("zhai");
        student.setSnum("201716161");
        model.addAttribute("student", student);
        return "test";
    }
}

在html頁面取出數據:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   <h3 th:text="${student.sname}"></h3>
   <h3>[[${student.sname}]]</h3>
</body>
</html>

(2)*

在controller層寫入數據:

@Controller
public class TestController {
    @RequestMapping("/test")
    public String hello(Model model){
        Student student=new Student();
        student.setSname("zhai");
        student.setSnum("201716161");
        model.addAttribute("student", student);
        return "test";
    }
}

在HTML頁面取出數據:

<body>
   <h3 th:object="${student}">[[*{sname}]],[[*{snum}]]</h3>
</body>

測試結果:

(3)#:獲取資源文件中的數據

獲取不到數據的時候顯示key的名稱:

<body>
   <h3>[[#{student.sname}]]</h3>
</body>

 

國際化:根據不同的語言和地區顯示對應的地區的語言文字,i18n(其來源是英文單詞internationalizatior的首末字符i和n,18為中間的字符數)

注意:國際化默認資源文件名: message.properties。若自定義資源文件名,需要在application.yml文件配置

例如:下面的配置就是用到的messages.properties文件中的國際化數據

spring:
  messages:
    basename: messages

目錄結構如下:

 在頁面中用#取出國際化相關的數據:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>國際化</title>
</head>
<body>
<form method="post">
    <p>
        <input type="text" name="username" th:placeholder="#{login.username}">
    </p>
    <p>
        <input type="password" name="password" th:placeholder="#{login.password}">
    </p>
<input type="submit" th:value="#{login.submit}"/></p>
</form>
</body>
</html>

測試結果:

切換為英文:即指定英文國際化的配置文件

spring:
  messages:
    basename: message_en_US

測試結果:

 (4)@:用來指明路徑

用@指出路徑:

<body>
   <h3>[[#{student.sname}]]</h3>
   <a th:href="@{i18n}">登錄</a>
</body>

在controller中定義路徑及要跳轉的頁面:

    @RequestMapping("/i18n")
    public String i18n(){
        return "i18n";
    }

 

2、國際化

(1)如果出現亂碼,可以更改瀏覽器的語言設置:

(2)默認使用的是messages.properties配置文件中的數據

(3)修改語言的優先級使用的配置文件是不同的

 此時調用的是英文的配置文件:

 如果將第一語言設置的是配置文件中沒有配置國際化的語言,那么就會使用默認的配置,即messages.properties中的配置:

 

 顯示的是messages.properties中的配置:

login.username=翟
login.password=123
login.submit=提交

測試結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM