You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. # spring-boot-demo-template-beetl
  2. > 本 demo 主要演示了 Spring Boot 项目如何集成 beetl 模板引擎
  3. ## pom.xml
  4. ```xml
  5. <?xml version="1.0" encoding="UTF-8"?>
  6. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  8. <modelVersion>4.0.0</modelVersion>
  9. <artifactId>spring-boot-demo-template-beetl</artifactId>
  10. <version>1.0.0-SNAPSHOT</version>
  11. <packaging>jar</packaging>
  12. <name>spring-boot-demo-template-beetl</name>
  13. <description>Demo project for Spring Boot</description>
  14. <parent>
  15. <groupId>com.xkcoding</groupId>
  16. <artifactId>spring-boot-demo</artifactId>
  17. <version>1.0.0-SNAPSHOT</version>
  18. </parent>
  19. <properties>
  20. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  21. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  22. <java.version>1.8</java.version>
  23. <ibeetl.version>1.1.63.RELEASE</ibeetl.version>
  24. </properties>
  25. <dependencies>
  26. <dependency>
  27. <groupId>com.ibeetl</groupId>
  28. <artifactId>beetl-framework-starter</artifactId>
  29. <version>${ibeetl.version}</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-web</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-starter-test</artifactId>
  38. <scope>test</scope>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.projectlombok</groupId>
  42. <artifactId>lombok</artifactId>
  43. <optional>true</optional>
  44. </dependency>
  45. <dependency>
  46. <groupId>cn.hutool</groupId>
  47. <artifactId>hutool-all</artifactId>
  48. </dependency>
  49. </dependencies>
  50. <build>
  51. <finalName>spring-boot-demo-template-beetl</finalName>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-maven-plugin</artifactId>
  56. </plugin>
  57. </plugins>
  58. </build>
  59. </project>
  60. ```
  61. ## IndexController.java
  62. ```java
  63. /**
  64. * <p>
  65. * 主页
  66. * </p>
  67. *
  68. * @author yangkai.shen
  69. * @date Created in 2018-10-10 11:17
  70. */
  71. @Controller
  72. @Slf4j
  73. public class IndexController {
  74. @GetMapping(value = {"", "/"})
  75. public ModelAndView index(HttpServletRequest request) {
  76. ModelAndView mv = new ModelAndView();
  77. User user = (User) request.getSession().getAttribute("user");
  78. if (ObjectUtil.isNull(user)) {
  79. mv.setViewName("redirect:/user/login");
  80. } else {
  81. mv.setViewName("page/index.btl");
  82. mv.addObject(user);
  83. }
  84. return mv;
  85. }
  86. }
  87. ```
  88. ## UserController.java
  89. ```java
  90. /**
  91. * <p>
  92. * 用户页面
  93. * </p>
  94. *
  95. * @author yangkai.shen
  96. * @date Created in 2018-10-10 11:17
  97. */
  98. @Controller
  99. @RequestMapping("/user")
  100. @Slf4j
  101. public class UserController {
  102. @PostMapping("/login")
  103. public ModelAndView login(User user, HttpServletRequest request) {
  104. ModelAndView mv = new ModelAndView();
  105. mv.addObject(user);
  106. mv.setViewName("redirect:/");
  107. request.getSession().setAttribute("user", user);
  108. return mv;
  109. }
  110. @GetMapping("/login")
  111. public ModelAndView login() {
  112. return new ModelAndView("page/login.btl");
  113. }
  114. }
  115. ```
  116. ## index.html
  117. ```jsp
  118. <!doctype html>
  119. <html lang="en">
  120. <% include("/common/head.html"){} %>
  121. <body>
  122. <div id="app" style="margin: 20px 20%">
  123. 欢迎登录,${user.name}!
  124. </div>
  125. </body>
  126. </html>
  127. ```
  128. ## login.html
  129. ```jsp
  130. <!doctype html>
  131. <html lang="en">
  132. <% include("/common/head.html"){} %>
  133. <body>
  134. <div id="app" style="margin: 20px 20%">
  135. <form action="/demo/user/login" method="post">
  136. 用户名<input type="text" name="name" placeholder="用户名"/>
  137. 密码<input type="password" name="password" placeholder="密码"/>
  138. <input type="submit" value="登录">
  139. </form>
  140. </div>
  141. </body>
  142. </html>
  143. ```
  144. ## application.yml
  145. ```yaml
  146. server:
  147. port: 8080
  148. servlet:
  149. context-path: /demo
  150. ```
  151. ## Beetl 语法糖学习文档
  152. http://ibeetl.com/guide/#beetl