Thymeleaf十分类似于JSP中使用的EL表达式。整体而言,Thymeleaf简洁、优雅、高效;非常适合小型项目的快速开发。
在此,概要介绍Thymeleaf常用标签。
标签 | 功能 | 示例 | |||
---|---|---|---|---|---|
th:text | 显示文本 |
|
|||
th:utext | 显示文本(对特殊标签不转义) |
|
|||
th:value | 为表单元素的value属性赋值 | |
|||
th:if | 判断条件 |
|
|||
th:each | 元素遍历 | tr th:each="user,userStat:${users}"> |
|||
th:id | 标记控件 |
|
|||
th:object | 替换对象 |
|
|||
th:with | 变量赋值(定义局部变量) | |
|||
th:style | 设置样式 | th:style="'display:' + @{(${sitrue} ? 'none' : 'inline-block')} + ''" |
|||
th:onclick | 点击事件 | th:onclick="'getCollect()'" |
|||
th:unless | 和th:if判断相反 | Login |
|||
th:href | 链接地址 | Login /> |
|||
th:switch | 多路选择,配合th:case 使用 |
|
|||
th:case | th:switch的一个分支 |
|
|||
th:fragment | 片段声明 |
|
|||
th:include | 片段包含 | /> |
|||
th:insert | 片段插入 | |
|||
th:replace | 片段替换 | |
|||
th:selected | 选中 | th:selected="(${xxx.id} == ${configObj.dd})" |
|||
th:src | 外部资源地址 | |
|||
th:inline | 定义js脚本可以使用变量 |
|
|||
th:action | 表单提交地址 |
|
|||
th:remove | 删除某个属性 |
|
在此,详细介绍Thymeleaf常用表达式。
语法 | 说明 | 作用 |
---|---|---|
${…} | 变量表达式 | 取出上下文变量的值 |
*{…} | 选择变量表达式 | 取出选择的对象的属性值 |
#{…} | 消息表达式 | 使文字消息国际化 |
@{…} | 链接表达式 | 用于表示超链接地址 |
~{…} | 片段表达式 | 引用公共的代码片段 |
变量表达式用于从上下文获取变量值。
示例如下:
<p th:text="${message}">默认值p>
选择变量表达式用于从被选择的对象获取属性值。
示例如下:
<div th:object="${session.user}">
<p th:text="*{name}">p>
<p th:text="*{gender}">p>
<p th:text="*{age}">p>
div>
等同于:
<div>
<p th:text="${session.user.name}">p>
<p th:text="${session.user.gender}">p>
<p th:text="${session.user.age}">p>
div>
消息表达式主要用于国际化。稍后,再详细介绍。
链接表达式用于处理 URL 链接地址。链接地址可以是相对地址,也可以是绝对地址亦可以在地址中携带参数。
在实际开发过程中,我们通常使用链接表达式实现链接、引入CSS、引入JS。
示例如下:
<p th:text="@{https://www.heidu.com}">p>
<p th:text="@{commons/base.html}">p>
<p th:text="@{/css/mian.css(v=1.0)}">p>
<p th:text="@{/user/order(username=${session.user.name})}">p>
<p th:text="@{/user/order(username=${session.user.name},status='ok')}">p>
<p th:text="@{/user/{username}/info(username=${session.user.name})}">p>
片段表达式用于引用一段公共的 HTML 代码片段。常用th:insert和th:replace引用公共的代码片段;两者的区别在于:th:insert是直接将代码片段插入到标签体内,而th:replace则是用代码片段直接替换标签体内容。
<head th:fragment="jsFragment">
<script th:src="@{/webjars/jquery/3.3.1/jquery.js}">script>
head>
<div th:replace="~{common/head::jsFragment}">div>
Thymeleaf常见的行内写法有两种:
[[…]] 等效于 th:text
[(…)] 等效于th:utext
在实际开发过程中,我们通常使用"[[@{/}]]"在前端页面获取项目名
示例如下:
let contextPath = "[[@{/}]]";
在此,以示例形式详细介绍Thymeleaf核心技术。
要点概述:
请在pom.xml文件中添加如下依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.5.4version>
<relativePath/>
parent>
<groupId>com.cngroupId>
<artifactId>SpringBootThymeleaf01artifactId>
<version>0.0.1-SNAPSHOTversion>
<name>SpringBootThymeleaf01name>
<description>SpringBootThymeleaf01description>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-thymeleafartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
请在application.properties文件添加以下配置。
# 缓存设置。开发中设置为false,线上时设置为true
spring.thymeleaf.cache=false
# 模板的编码方式
spring.thymeleaf.encoding=UTF-8
# 模式
spring.thymeleaf.mode=HTML5
# 模板页面存放路径
spring.thymeleat.prefix=classpath:/resources/templates/
# 模板页面名称后缀
spring.thymeleaf.suffix=.html
package com.cn.springbootthymeleaf01.entity;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
public class Student {
private String name;
private int age;
private String gender;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
在User中其birthday字段类型为java.util.Date。
package com.cn.springbootthymeleaf01.entity;
import java.util.Date;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
public class User {
private Integer id;
private String name;
private Double salary;
private Date birthday;
public User() {
}
public User(Integer id, String name, Double salary, Date birthday) {
this.id = id;
this.name = name;
this.salary = salary;
this.birthday = birthday;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", salary=" + salary +
", birthday=" + birthday +
'}';
}
}
package com.cn.springbootthymeleaf01;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@SpringBootApplication
public class SpringBootThymeleaf01Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootThymeleaf01Application.class, args);
}
}
在此,详细介绍Thymeleaf常用标签
package com.cn.springbootthymeleaf01.controller;
import com.cn.springbootthymeleaf01.entity.Student;
import com.cn.springbootthymeleaf01.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController1")
public class TestController1 {
@RequestMapping("/test1")
public String test1(HttpServletRequest httpServletRequest){
// 传递基本类型数据
String name = "谷哥的小弟";
httpServletRequest.setAttribute("name",name);
// 传递基本类型数据并进行条件判断
int age = 19;
httpServletRequest.setAttribute("age",age);
// 传递带标签的数据
String htmlContent = "本文作者:谷哥的小弟";
httpServletRequest.setAttribute("htmlContent",htmlContent);
// 为标签的value属性传递值
String city = "北京";
httpServletRequest.setAttribute("city",city);
// 传递对象
Student student = new Student("zxx",19,"man");
httpServletRequest.setAttribute("student",student);
// 传递对象
User user = new User(9527, "zxc", 4500.5, new Date());
httpServletRequest.setAttribute("user", user);
// 传递集合
Student student1 = new Student("wmd",19,"man");
Student student2 = new Student("puy",20,"man");
Student student3 = new Student("tep",21,"man");
Student student4 = new Student("cvb",22,"man");
List<Student> studentList = new ArrayList<Student>();
studentList.add(student1);
studentList.add(student2);
studentList.add(student3);
studentList.add(student4);
httpServletRequest.setAttribute("studentList",studentList);
// 跳转至index.html
return "index1";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
获取基本类型数据:
<span th:text="${name}">span>
<hr/>
获取基本类型数据并进行条件判断:
<div style="width: 300px;height: 50px;background: green;" th:if="${age>=18}">
age大于等于18,可以去网吧。
div>
<div style="width: 300px;height: 50px;background: red;" th:if="${age<18}">
age小于18,不可以去网吧。
div>
<hr/>
获取带标签的数据:
<span th:utext="${htmlContent}">span>
<hr/>
获取为标签value属性传递的值
<input type="text" name="username" th:value="${city}">
<hr/>
获取对象:
name:<span th:text="${student.name}">span>
age:<span th:text="${student.age}">span>
gender:<span th:text="${student.gender}">span>
<hr/>
获取对象:
id:<span th:text="${user.id}">span>
name:<span th:text="${user.name}">span>
salary:<span th:text="${user.salary}">span>
birthday:<span th:text="${#dates.format(user.birthday,'yyy-MM-dd HH:mm:ss')}">span>
<hr/>
获取集合:
<ul>
<li th:each="student,state:${studentList}">
state count: <span th:text="${state.count}">span>
state odd : <span th:text="${state.odd}">span>
state even : <span th:text="${state.even}">span>
state size : <span th:text="${state.size}">span>
name:<span th:text="${student.name}">span>
age:<span th:text="${student.age}">span>
gender:<span th:text="${student.gender}">span>
li>
ul>
body>
html>
http://localhost:8080/MyController1/test1
该标签用于显示普通文本。
Controller中代码如下:
// 传递基本类型数据
String name = "谷哥的小弟";
httpServletRequest.setAttribute("name",name);
html中代码如下:
获取基本类型数据:
<span th:text="${name}">span>
<hr/>
该标签用于条件判断。当判断的结果为true时显示元素;反之,不显示。
Controller中代码如下:
// 传递基本类型数据并进行条件判断
int age = 19;
httpServletRequest.setAttribute("age",age);
html中代码如下:
获取基本类型数据并进行条件判断:
<div style="width: 300px;height: 50px;background: green;" th:if="${age>=18}">
age大于等于18,可以去网吧。
div>
<div style="width: 300px;height: 50px;background: red;" th:if="${age<18}">
age小于18,不可以去网吧。
div>
<hr/>
该标签用于显示带有网页标签的文本。
Controller中代码如下:
// 传递带标签的数据
String htmlContent = "本文作者:谷哥的小弟";
httpServletRequest.setAttribute("htmlContent",htmlContent);
html中代码如下:
获取带标签的数据:
<span th:utext="${htmlContent}">span>
<hr/>
该标签用于为标签value属性传递值。
Controller中代码如下:
// 为标签的value属性传递值
String city = "北京";
httpServletRequest.setAttribute("city",city);
html中代码如下:
获取为标签value属性传递的值
<input type="text" name="username" th:value="${city}">
<hr/>
将对象保存至Request域并在html文件中获取。
Controller中代码如下:
// 传递对象
Student student = new Student("zxx",19,"man");
httpServletRequest.setAttribute("student",student);
html中代码如下:
获取对象:
name:<span th:text="${student.name}">span>
age:<span th:text="${student.age}">span>
gender:<span th:text="${student.gender}">span>
<hr/>
在html页面中通过对象名.属性
的方式获取相应的值。
Controller中代码如下:
// 传递对象
User user = new User(9527, "zxc", 4500.5, new Date());
httpServletRequest.setAttribute("user", user);
html中代码如下:
获取对象:
id:<span th:text="${user.id}">span>
name:<span th:text="${user.name}">span>
salary:<span th:text="${user.salary}">span>
birthday:<span th:text="${#dates.format(user.birthday,'yyy-MM-dd HH:mm:ss')}">span>
<hr/>
利用Spring Boot自带工具类#dates格式化日期。
Controller中代码如下:
// 传递集合
Student student1 = new Student("wmd",19,"man");
Student student2 = new Student("puy",20,"man");
Student student3 = new Student("tep",21,"man");
Student student4 = new Student("cvb",22,"man");
List<Student> studentList = new ArrayList<Student>();
studentList.add(student1);
studentList.add(student2);
studentList.add(student3);
studentList.add(student4);
httpServletRequest.setAttribute("studentList",studentList);
html中代码如下:
获取集合:
<ul>
<li th:each="student,state:${studentList}">
state count: <span th:text="${state.count}">span>
state odd : <span th:text="${state.odd}">span>
state even : <span th:text="${state.even}">span>
state size : <span th:text="${state.size}">span>
name:<span th:text="${student.name}">span>
age:<span th:text="${student.age}">span>
gender:<span th:text="${student.gender}">span>
li>
ul>
在html中利用th:each遍历集合,语法如下:
th:each="元素,state:${集合}"
在之前的示例中,均是把数据保存到Request域。除此以外,我们还可以将
数据至Session域和Application域。
package com.cn.springbootthymeleaf01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController2")
public class TestController2 {
@RequestMapping("/test2")
public String test2(HttpServletRequest httpServletRequest){
// 将数据保存至session域
String name = "谷哥的小弟";
HttpSession session = httpServletRequest.getSession();
session.setAttribute("name",name);
// 将数据保存至application域
ServletContext servletContext = httpServletRequest.getServletContext();
int age = 27;
servletContext.setAttribute("age",age);
// 跳转至index2.html
return "index2";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
从session域获取数据:
name:<span th:text="${session.name}">span>
<hr/>
从application域获取数据:
age:<span th:text="${application.age}">span>
<hr/>
body>
html>
http://localhost:8080/MyController2/test2
Controller中代码如下:
// 将数据保存至session域
String name = "谷哥的小弟";
HttpSession session = httpServletRequest.getSession();
session.setAttribute("name",name);
html中代码如下:
从session域获取数据:
name:<span th:text="${session.name}">span>
<hr/>
在前端页面中通过session.
的方式获取数据。
Controller中代码如下:
// 将数据保存至application域
ServletContext servletContext = httpServletRequest.getServletContext();
int age = 27;
servletContext.setAttribute("age",age);
html中代码如下:
从application域获取数据:
age:<span th:text="${application.age}">span>
<hr/>
在前端页面中通过application.
的方式获取数据。
在之前的示例中,均是把数据保存到Request域、Session域、Application域。除此以外,还可以利用Model保存数据
package com.cn.springbootthymeleaf01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController3")
public class TestController3 {
@RequestMapping("/test3")
public String test3(HttpServletRequest httpServletRequest, Model model){
// 利用Model保存数据
String name = "谷哥的小弟";
model.addAttribute("name",name);
int age = 27;
model.addAttribute("age",age);
// 跳转至index3.html
return "index3";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
从Model获取数据:
name:<span th:text="${name}">span>
age:<span th:text="${age}">span>
<hr/>
body>
html>
http://localhost:8080/MyController3/test3
在Spring Boot + Thymeleaf 的开发环境中通常利用 return "redirect:Controller"的方式进行重定向。也就是说:利用redirect重定向至其它Controller。
需要注意的是:在进行重定向时不可利用Request和Model保存数据;而应该使用Session和Application域保存数据。否则,重定向之后的页面无法获取数据进行显示。
package com.cn.springbootthymeleaf01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController4")
public class TestController4 {
@RequestMapping("/test4")
public String test4(HttpServletRequest httpServletRequest, Model model){
// 利用HttpServletRequest保存数据(wrong)
String city = "北京";
httpServletRequest.setAttribute("city", city);
// 利用Model保存数据(wrong)
String name = "谷哥的小弟";
model.addAttribute("name",name);
int age = 27;
model.addAttribute("age",age);
// 将数据保存至session域
String author = "lfdfhl";
HttpSession session = httpServletRequest.getSession();
session.setAttribute("author",author);
// 将数据保存至application域
ServletContext servletContext = httpServletRequest.getServletContext();
int number = 9527;
servletContext.setAttribute("number",number);
// 重定向至/MyController4/testRedirect
return "redirect:/MyController4/testRedirect";
}
@RequestMapping("/testRedirect")
public String testRedirect(){
return "index4";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
从Request获取数据(wrong):
city:<span th:text="${city}">span>
<hr/>
从Model获取数据(wrong):
name:<span th:text="${name}">span>
age:<span th:text="${age}">span>
<hr/>
从session域获取数据:
author:<span th:text="${session.author}">span>
<hr/>
从application域获取数据:
number:<span th:text="${application.number}">span>
<hr/>
body>
html>
http://localhost:8080/MyController4/testRedirect
在Spring Boot + Thymeleaf 的开发环境中通常利用 return "forward:Controller"的方式进行请求转发。也就是说:利用forward请求转发至其它Controller。
package com.cn.springbootthymeleaf01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController5")
public class TestController5 {
@RequestMapping("/test5")
public String test4(HttpServletRequest httpServletRequest, Model model){
// 利用HttpServletRequest保存数据
String city = "北京";
httpServletRequest.setAttribute("city", city);
// 利用Model保存数据
String name = "谷哥的小弟";
model.addAttribute("name",name);
int age = 27;
model.addAttribute("age",age);
// 将数据保存至session域
String author = "lfdfhl";
HttpSession session = httpServletRequest.getSession();
session.setAttribute("author",author);
// 将数据保存至application域
ServletContext servletContext = httpServletRequest.getServletContext();
int number = 9527;
servletContext.setAttribute("number",number);
// 请求转发至/MyController5/testForward
return "forward:/MyController5/testForward";
}
@RequestMapping("/testForward")
public String testForward(){
return "index5";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
从Request获取数据:
city:<span th:text="${city}">span>
<hr/>
从Model获取数据:
name:<span th:text="${name}">span>
age:<span th:text="${age}">span>
<hr/>
从session域获取数据:
author:<span th:text="${session.author}">span>
<hr/>
从application域获取数据:
number:<span th:text="${application.number}">span>
<hr/>
body>
html>
http://localhost:8080/MyController5/test5
在开发中,常需要引入已经定义好的静态资源,例如:css、js、图片。
引入css,语法如下:
<link th:href="@{/css文件名}" rel="stylesheet">
引入js,语法如下:
<script th:src="@{/js文件名}">script>
引入图片,语法如下:
<img th:src="@{/文件名}" />
package com.cn.springbootthymeleaf01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("/MyController6")
public class TestController6 {
@RequestMapping("/test6")
public String test6(HttpServletRequest httpServletRequest, Model model){
// 利用Model保存数据
String name = "谷哥的小弟";
model.addAttribute("name",name);
int age = 27;
model.addAttribute("age",age);
// 跳转至index6.html
return "index6";
}
}
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaftitle>
<link th:href="@{/test.css}" rel="stylesheet">
<script th:src="@{/test.js}">script>
<script>
showDialog();
script>
<script>
let contextPath = "[[@{/}]]";
console.log("项目名:"+contextPath)
script>
head>
<body>
<h2 style="color: red;">本文作者:谷哥的小弟h2>
<h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhlh2>
<br/>
从Model获取数据:
name:<span th:text="${name}">span>
age:<span th:text="${age}">span>
<hr/>
<img th:src="@{/icon.jpg}" width="72" height="72"/>
body>
html>
http://localhost:8080/MyController6/test6