springboot用法和与各种框架、组件等结合使用,包括springboot的注解分析、路径分析、取得内置对象、项目打包、配置环境属性、读取资源文件、Bean配置、模板渲染、基于yml的多profile配置、基于properties的多profile、添加数据验证、配置错误页、全局异常处理、配置Tomcat运行、配置https访问路径、信息显示、内置对象、显示对象信息、文件上传、使用文件服务器、拦截器、配置druid数据库连接池、整合MyBatis框架、事务控制、Druid监控、整合ActiveMQ、整合RabbitMQ、整合kafka、邮件发送、定时调度、Actuator监控、整合Redis数据库、整合Restfui框架、整合Shiro
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/view">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>microboot-thymeleaf</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.springframework.ide.eclipse.core.springbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.springframework.ide.eclipse.core.springnature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,6 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/main/view=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,5 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
@@ -0,0 +1,4 @@
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<faceted-project>
|
||||
<installed facet="cloudfoundry.standalone.app" version="1.0"/>
|
||||
</faceted-project>
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.mldn</groupId>
|
||||
<artifactId>microboot</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>microboot-thymeleaf</artifactId>
|
||||
<name>microboot-thymeleaf</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-jetty</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>springloaded</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,10 @@
|
||||
package cn.mldn.microboot;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描
|
||||
public class StartSpringBootMain {
|
||||
public static void main(String[] args) throws Exception {
|
||||
SpringApplication.run(StartSpringBootMain.class, args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package cn.mldn.microboot.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import cn.mldn.microboot.util.controller.AbstractBaseController;
|
||||
import cn.mldn.microboot.vo.Member;
|
||||
|
||||
@Controller
|
||||
public class MemberController extends AbstractBaseController {
|
||||
@RequestMapping(value = "/member/set", method = RequestMethod.GET)
|
||||
public String set(Model model) {
|
||||
Set<String> allNames = new HashSet<String>() ;
|
||||
List<Integer> allIds = new ArrayList<Integer>() ;
|
||||
for (int x = 0 ; x < 5 ; x ++) {
|
||||
allNames.add("mldn-" + x) ;
|
||||
allIds.add(x) ;
|
||||
}
|
||||
model.addAttribute("names", allNames) ;
|
||||
model.addAttribute("ids", allIds) ;
|
||||
model.addAttribute("mydate", new java.util.Date()) ;
|
||||
return "member/member_set" ;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/member/map", method = RequestMethod.GET)
|
||||
public String map(Model model) {
|
||||
Map<String,Member> allMembers = new HashMap<String,Member>();
|
||||
for (int x = 0; x < 10; x++) {
|
||||
Member vo = new Member();
|
||||
vo.setMid(101L + x);
|
||||
vo.setName("啊三 - " + x);
|
||||
vo.setAge(9);
|
||||
vo.setSalary(99999.99);
|
||||
vo.setBirthday(new Date());
|
||||
allMembers.put("mldn-" + x, vo);
|
||||
}
|
||||
model.addAttribute("allMembers", allMembers);
|
||||
return "member/member_map";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/member/list", method = RequestMethod.GET)
|
||||
public String list(Model model) {
|
||||
List<Member> allMembers = new ArrayList<Member>();
|
||||
for (int x = 0; x < 10; x++) {
|
||||
Member vo = new Member();
|
||||
vo.setMid(101L + x);
|
||||
vo.setName("啊三 - " + x);
|
||||
vo.setAge(9);
|
||||
vo.setSalary(99999.99);
|
||||
vo.setBirthday(new Date());
|
||||
allMembers.add(vo) ;
|
||||
}
|
||||
model.addAttribute("allMembers", allMembers);
|
||||
return "member/member_list";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package cn.mldn.microboot.controller;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import cn.mldn.microboot.util.controller.AbstractBaseController;
|
||||
import cn.mldn.microboot.vo.Member;
|
||||
|
||||
@Controller
|
||||
public class MessageController extends AbstractBaseController {
|
||||
@RequestMapping(value = "/message/member_show", method = RequestMethod.GET)
|
||||
public String memberShow(Model model) {
|
||||
Member vo = new Member();
|
||||
vo.setMid(101L);
|
||||
vo.setName("啊三");
|
||||
vo.setAge(9);
|
||||
vo.setSalary(99999.99);
|
||||
vo.setBirthday(new Date());
|
||||
model.addAttribute("member", vo);
|
||||
return "message/member_show";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/message/inner", method = RequestMethod.GET)
|
||||
public String inner(HttpServletRequest request, Model model) {
|
||||
request.setAttribute("requestMessage", "mldnjava-request");
|
||||
request.getSession().setAttribute("sessionMessage", "mldnjava-session");
|
||||
request.getServletContext().setAttribute("applicationMessage",
|
||||
"mldnjava-application");
|
||||
model.addAttribute("url", "www.mldn.cn");
|
||||
request.setAttribute("url2",
|
||||
"<span style='color:red'>www.mldn.cn</span>");
|
||||
return "message/message_show_inner";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/message/showStyle", method = RequestMethod.GET)
|
||||
public String showStyle(Model model) { // 通过model可以实现内容的传递
|
||||
model.addAttribute("url", "<span style='color:red'>www.mldn.cn</span>"); // request属性传递包装
|
||||
return "message/message_show_style";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/show", method = RequestMethod.GET)
|
||||
public String show(String mid, Model model) { // 通过model可以实现内容的传递
|
||||
model.addAttribute("url", "www.mldn.cn"); // request属性传递包装
|
||||
model.addAttribute("mid", mid); // request属性传递包装
|
||||
return "message/message_show"; // 此处只返回一个路径, 该路径没有设置后缀,后缀默认是*.html
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package cn.mldn.microboot.util.controller;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.context.MessageSource;
|
||||
|
||||
public abstract class AbstractBaseController {
|
||||
@Resource
|
||||
private MessageSource messageSource; // 自动注入此资源对象
|
||||
public String getMessage(String key, String... args) {
|
||||
return this.messageSource.getMessage(key, args, Locale.getDefault());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package cn.mldn.microboot.vo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class Member implements Serializable {
|
||||
private Long mid ;
|
||||
private String name ;
|
||||
private Integer age ;
|
||||
private Date birthday ;
|
||||
private Double salary ;
|
||||
public Long getMid() {
|
||||
return mid;
|
||||
}
|
||||
public void setMid(Long mid) {
|
||||
this.mid = mid;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
public void setAge(Integer age) {
|
||||
this.age = age;
|
||||
}
|
||||
public Date getBirthday() {
|
||||
return birthday;
|
||||
}
|
||||
public void setBirthday(Date birthday) {
|
||||
this.birthday = birthday;
|
||||
}
|
||||
public Double getSalary() {
|
||||
return salary;
|
||||
}
|
||||
public void setSalary(Double salary) {
|
||||
this.salary = salary;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
server:
|
||||
port: 80
|
||||
spring:
|
||||
messages:
|
||||
basename: i18n/Messages,i18n/Pages
|
||||
@@ -0,0 +1,2 @@
|
||||
welcome.url=www.mldn.cn
|
||||
welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01
|
||||
@@ -0,0 +1,2 @@
|
||||
member.add.page=/pages/back/admin/member/member_add.jsp
|
||||
member.add.action=/pages/back/admin/member/member_add.action
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{js/main.js}"></script>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<h1>www.mldn.cn</h1>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,3 @@
|
||||
window.onload = function() {
|
||||
console.log("****** www.mldn.cn ******") ;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<h1>www.mldn.cn</h1>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
<footer th:fragment="companyInfo">
|
||||
<p>魔乐科技(www.mldn.cn)</p>
|
||||
<p th:text="${itemid}"/>、<p th:text="${subid}"/>
|
||||
</footer>
|
||||
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr><td>No.</td><td>MID</td><td>姓名</td><td>年龄</td><td>偶数</td><td>奇数</td></tr>
|
||||
<tr th:each="member,memberStat:${allMembers}">
|
||||
<td th:text="${memberStat.index + 1}"/>
|
||||
<td th:text="${member.mid}"/>
|
||||
<td th:text="${member.name}"/>
|
||||
<td th:text="${member.age}"/>
|
||||
<td th:text="${memberStat.even}"/>
|
||||
<td th:text="${memberStat.odd}"/>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#maps.containsKey(allMembers,'mldn-7')}"/>
|
||||
<p th:text="${allMembers['mldn-7'].name}"/>
|
||||
<hr/>
|
||||
<table>
|
||||
<tr><td>No.</td><td>KEY</td><td>MID</td><td>姓名</td><td>年龄</td><td>偶数</td><td>奇数</td></tr>
|
||||
<tr th:each="memberEntry,memberStat:${allMembers}">
|
||||
<td th:text="${memberStat.index + 1}"/>
|
||||
<td th:text="${memberEntry.key}"/>
|
||||
<td th:text="${memberEntry.value.mid}"/>
|
||||
<td th:text="${memberEntry.value.name}"/>
|
||||
<td th:text="${memberEntry.value.age}"/>
|
||||
<td th:text="${memberStat.even}"/>
|
||||
<td th:text="${memberStat.odd}"/>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"/>
|
||||
<p th:text="${#dates.format(mydate,'yyyy-MM-dd HH:mm:ss.SSS')}"/>
|
||||
<hr/>
|
||||
<p th:text="${#strings.replace('www.mldn.cn','.','$')}"/>
|
||||
<p th:text="${#strings.toUpperCase('www.mldn.cn')}"/>
|
||||
<p th:text="${#strings.trim('www.mldn.cn')}"/>
|
||||
<hr/>
|
||||
<p th:text="${#sets.contains(names,'mldn-0')}"/>
|
||||
<p th:text="${#sets.contains(names,'mldn-9')}"/>
|
||||
<p th:text="${#sets.size(names)}"/>
|
||||
<hr/>
|
||||
<p th:text="${#sets.contains(ids,0)}"/>
|
||||
<p th:text="${ids[1]}"/>
|
||||
<p th:text="${names[1]}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<span th:unless="${member.age gt 18}">
|
||||
你还不满18岁,不能够看电影!
|
||||
</span>
|
||||
<hr/>
|
||||
<span th:switch="${member.mid}">
|
||||
<p th:case="100">mid为101的员工来了</p>
|
||||
<p th:case="99">mid为102的员工来了</p>
|
||||
<p th:case="*">没有匹配成功的数据!</p>
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="'官方网站:' + ${url}"/>
|
||||
<p th:text="'用户名:' + ${mid}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#httpServletRequest.getRemoteAddr()}"/>
|
||||
<p th:text="${#httpServletRequest.getAttribute('requestMessage')}"/>
|
||||
<p th:text="${#httpSession.getId()}"/>
|
||||
<p th:text="${#httpServletRequest.getServletContext().getRealPath('/')}"/>
|
||||
<hr/>
|
||||
<p th:text="'requestMessage = ' + ${requestMessage}"/>
|
||||
<p th:text="'sessionMessage = ' + ${session.sessionMessage}"/>
|
||||
<p th:text="'applicationMessage = ' + ${application.applicationMessage}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<a href="aa.html" th:href="@{/show}">访问</a>
|
||||
<hr/>
|
||||
<p th:text="'官方网站:' + ${url}"/>
|
||||
<p th:utext="'官方网站:' + ${url}"/>
|
||||
<hr/>
|
||||
<h2 th:text="#{welcome.url}"/>
|
||||
<h2 th:text="#{welcome.msg('xiaoli')}"/>
|
||||
<hr/>
|
||||
<p th:utext="'官方网站:' + ${url} + '、数学计算:' + (1 + 2)"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
package cn.mldn.microboot;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
/**
|
||||
* Unit test for simple App.
|
||||
*/
|
||||
public class AppTest
|
||||
extends TestCase
|
||||
{
|
||||
/**
|
||||
* Create the test case
|
||||
*
|
||||
* @param testName name of the test case
|
||||
*/
|
||||
public AppTest( String testName )
|
||||
{
|
||||
super( testName );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the suite of tests being tested
|
||||
*/
|
||||
public static Test suite()
|
||||
{
|
||||
return new TestSuite( AppTest.class );
|
||||
}
|
||||
|
||||
/**
|
||||
* Rigourous Test :-)
|
||||
*/
|
||||
public void testApp()
|
||||
{
|
||||
assertTrue( true );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package cn.mldn.microboot.test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.web.WebAppConfiguration;
|
||||
|
||||
import cn.mldn.microboot.StartSpringBootMain;
|
||||
import cn.mldn.microboot.controller.MessageController;
|
||||
|
||||
@SpringBootTest(classes = StartSpringBootMain.class)
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@WebAppConfiguration
|
||||
public class TestMessageController {
|
||||
@Resource
|
||||
private MessageController messageController;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
Manifest-Version: 1.0
|
||||
Built-By: foreveriss
|
||||
Build-Jdk: 1.8.0_121
|
||||
Created-By: Maven Integration for Eclipse
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#Generated by Maven Integration for Eclipse
|
||||
#Thu Jun 29 23:45:20 CST 2017
|
||||
version=0.0.1-SNAPSHOT
|
||||
groupId=cn.mldn
|
||||
m2e.projectName=microboot-thymeleaf
|
||||
m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-thymeleaf
|
||||
artifactId=microboot-thymeleaf
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.mldn</groupId>
|
||||
<artifactId>microboot</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>microboot-thymeleaf</artifactId>
|
||||
<name>microboot-thymeleaf</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-jetty</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>springloaded</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,5 @@
|
||||
server:
|
||||
port: 80
|
||||
spring:
|
||||
messages:
|
||||
basename: i18n/Messages,i18n/Pages
|
||||
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
welcome.url=www.mldn.cn
|
||||
welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01
|
||||
@@ -0,0 +1,2 @@
|
||||
member.add.page=/pages/back/admin/member/member_add.jsp
|
||||
member.add.action=/pages/back/admin/member/member_add.action
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{js/main.js}"></script>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<h1>www.mldn.cn</h1>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,3 @@
|
||||
window.onload = function() {
|
||||
console.log("****** www.mldn.cn ******") ;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<h1>www.mldn.cn</h1>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
<footer th:fragment="companyInfo">
|
||||
<p>魔乐科技(www.mldn.cn)</p>
|
||||
<p th:text="${itemid}"/>、<p th:text="${subid}"/>
|
||||
</footer>
|
||||
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr><td>No.</td><td>MID</td><td>姓名</td><td>年龄</td><td>偶数</td><td>奇数</td></tr>
|
||||
<tr th:each="member,memberStat:${allMembers}">
|
||||
<td th:text="${memberStat.index + 1}"/>
|
||||
<td th:text="${member.mid}"/>
|
||||
<td th:text="${member.name}"/>
|
||||
<td th:text="${member.age}"/>
|
||||
<td th:text="${memberStat.even}"/>
|
||||
<td th:text="${memberStat.odd}"/>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#maps.containsKey(allMembers,'mldn-7')}"/>
|
||||
<p th:text="${allMembers['mldn-7'].name}"/>
|
||||
<hr/>
|
||||
<table>
|
||||
<tr><td>No.</td><td>KEY</td><td>MID</td><td>姓名</td><td>年龄</td><td>偶数</td><td>奇数</td></tr>
|
||||
<tr th:each="memberEntry,memberStat:${allMembers}">
|
||||
<td th:text="${memberStat.index + 1}"/>
|
||||
<td th:text="${memberEntry.key}"/>
|
||||
<td th:text="${memberEntry.value.mid}"/>
|
||||
<td th:text="${memberEntry.value.name}"/>
|
||||
<td th:text="${memberEntry.value.age}"/>
|
||||
<td th:text="${memberStat.even}"/>
|
||||
<td th:text="${memberStat.odd}"/>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"/>
|
||||
<p th:text="${#dates.format(mydate,'yyyy-MM-dd HH:mm:ss.SSS')}"/>
|
||||
<hr/>
|
||||
<p th:text="${#strings.replace('www.mldn.cn','.','$')}"/>
|
||||
<p th:text="${#strings.toUpperCase('www.mldn.cn')}"/>
|
||||
<p th:text="${#strings.trim('www.mldn.cn')}"/>
|
||||
<hr/>
|
||||
<p th:text="${#sets.contains(names,'mldn-0')}"/>
|
||||
<p th:text="${#sets.contains(names,'mldn-9')}"/>
|
||||
<p th:text="${#sets.size(names)}"/>
|
||||
<hr/>
|
||||
<p th:text="${#sets.contains(ids,0)}"/>
|
||||
<p th:text="${ids[1]}"/>
|
||||
<p th:text="${names[1]}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<span th:unless="${member.age gt 18}">
|
||||
你还不满18岁,不能够看电影!
|
||||
</span>
|
||||
<hr/>
|
||||
<span th:switch="${member.mid}">
|
||||
<p th:case="100">mid为101的员工来了</p>
|
||||
<p th:case="99">mid为102的员工来了</p>
|
||||
<p th:case="*">没有匹配成功的数据!</p>
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="'官方网站:' + ${url}"/>
|
||||
<p th:text="'用户名:' + ${mid}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<p th:text="${#httpServletRequest.getRemoteAddr()}"/>
|
||||
<p th:text="${#httpServletRequest.getAttribute('requestMessage')}"/>
|
||||
<p th:text="${#httpSession.getId()}"/>
|
||||
<p th:text="${#httpServletRequest.getServletContext().getRealPath('/')}"/>
|
||||
<hr/>
|
||||
<p th:text="'requestMessage = ' + ${requestMessage}"/>
|
||||
<p th:text="'sessionMessage = ' + ${session.sessionMessage}"/>
|
||||
<p th:text="'applicationMessage = ' + ${application.applicationMessage}"/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<title>SpringBoot模版渲染</title>
|
||||
<script type="text/javascript" th:src="@{/js/main.js}"></script>
|
||||
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<a href="aa.html" th:href="@{/show}">访问</a>
|
||||
<hr/>
|
||||
<p th:text="'官方网站:' + ${url}"/>
|
||||
<p th:utext="'官方网站:' + ${url}"/>
|
||||
<hr/>
|
||||
<h2 th:text="#{welcome.url}"/>
|
||||
<h2 th:text="#{welcome.msg('xiaoli')}"/>
|
||||
<hr/>
|
||||
<p th:utext="'官方网站:' + ${url} + '、数学计算:' + (1 + 2)"/>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user