springboot入门_模板

springboot中已经不推荐使用jsp,而是推荐使用模板,如freemarker,thymeleaf等,本文记录在sprigboot中使用模板。

创建一个maven的springboot工程,

freemarker,要使用freemarker模板需引入所需要的jar,pom.xml如下:

 1 <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 2   <modelVersion>4.0.0</modelVersion>
 3   <groupId>com.allen.springboot.learn</groupId>
 4   <artifactId>springboot_freemarker</artifactId>
 5   <version>0.0.1-SNAPSHOT</version>
 6   
 7   <parent>
 8     <groupId>org.springframework.boot</groupId>
 9     <artifactId>spring-boot-starter-parent</artifactId>
10     <version>1.5.10.RELEASE</version>
11   </parent>
12   
13   <dependencies>
14     <!-- web 依赖 -->
15     <dependency>
16         <groupId>org.springframework.boot</groupId>
17         <artifactId>spring-boot-starter-web</artifactId>
18     </dependency>
19     
20     <!-- Freemarker 依赖 -->
21     <dependency>
22         <groupId>org.springframework.boot</groupId>
23         <artifactId>spring-boot-starter-freemarker</artifactId>
24     </dependency>
25   </dependencies>
26   
27 </project>
View Code

在resources目录下创建application.properties文件,添加freemarker配置信息,代码如下:

 1 ##FREEMARKER
 2 spring.freemarker.template-loader-path=classpath:/view/
 3 spring.freemarker.suffix=.ftl
 4 #spring.freemarker.prefix=
 5 spring.freemarker.allow-request-override=false
 6 spring.freemarker.cache=true
 7 spring.freemarker.check-template-location=true
 8 spring.freemarker.charset=UTF-8
 9 spring.freemarker.content-type=text/html
10 spring.freemarker.expose-request-attributes=false
11 spring.freemarker.expose-session-attributes=false
12 spring.freemarker.expose-spring-macro-helpers=false
View Code

这些配置信息中,比较重要的是前两行,分别指定文件所在路径和文件名的后缀。

至此freemarker的配置已经完成,接下来创建controller,实体类和模板,使用freemarker模板

 1 /**
 2  * 
 3  */
 4 package com.allen.springboot.learn.controller;
 5 
 6 import java.util.ArrayList;
 7 import java.util.List;
 8 
 9 import org.springframework.stereotype.Controller;
10 import org.springframework.ui.Model;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 
13 import com.allen.springboot.learn.entity.UserInfo;
14 
15 /**
16  * @author admin
17  *
18  */
19 @Controller
20 @RequestMapping("/freemarker")
21 public class FreemarkerController {
22     
23     @RequestMapping("/hello")
24     public String hello(Model model){
25         UserInfo u1 = new UserInfo();
26         u1.setId(1);
27         u1.setEmail("11@qq.com");
28         u1.setAge(12);
29         u1.setPassword("111111");
30         u1.setSex("男");
31         u1.setUsername("allen");
32         model.addAttribute("u1", u1);
33         
34         List<UserInfo> userList = new ArrayList<UserInfo>();
35         userList.add(u1);
36         UserInfo u2 = new UserInfo();
37         u2.setId(2);
38         u2.setEmail("22@qq.com");
39         u2.setAge(22);
40         u2.setPassword("222222");
41         u2.setSex("F");
42         u2.setUsername("kobe");
43         userList.add(u2);
44         UserInfo u3 = new UserInfo();
45         u3.setId(3);
46         u3.setEmail("33@qq.com");
47         u3.setAge(33);
48         u3.setPassword("333");
49         u3.setSex("M");
50         u3.setUsername("kg");
51         userList.add(u3);
52         model.addAttribute("userList", userList);
53         return "fmk";
54     }
55 
56 }
View Code
 1 /**
 2  * 
 3  */
 4 package com.allen.springboot.learn.entity;
 5 
 6 /**
 7  * @author admin
 8  *
 9  */
10 public class UserInfo {
11     
12     private Integer id;
13     private String username;
14     private String password;
15     private String sex;
16     private String email;
17     private int age;
18     
19     public Integer getId() {
20         return id;
21     }
22     public void setId(Integer id) {
23         this.id = id;
24     }
25     public String getUsername() {
26         return username;
27     }
28     public void setUsername(String username) {
29         this.username = username;
30     }
31     public String getPassword() {
32         return password;
33     }
34     public void setPassword(String password) {
35         this.password = password;
36     }
37     public String getSex() {
38         return sex;
39     }
40     public void setSex(String sex) {
41         this.sex = sex;
42     }
43     public String getEmail() {
44         return email;
45     }
46     public void setEmail(String email) {
47         this.email = email;
48     }
49     public int getAge() {
50         return age;
51     }
52     public void setAge(int age) {
53         this.age = age;
54     }
55 
56 }
View Code
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <title>Insert title here</title>
 5 </head>
 6 <body>
 7 用户信息<br/>
 8 id:${u1.id}<br/>
 9 username:${u1.username}<br/>
10 password:${u1.password}<br/>
11 sex:${u1.sex}<br/>
12 email:${u1.email}<br/>
13 age:${u1.age}
14 <hr/>
15 列表信息<br/>
16 <table>
17     <#if (userList ? size > 0 )>
18         <#list userList as user>
19             <tr>
20                 <td>${user.id}</td>
21                 <td>${user.username}</td>
22                 <td>${user.password}</td>
23                 <td>${user.sex}</td>
24                 <td>${user.email}</td>
25                 <td>${user.age}</td>
26             </tr>
27         </#list>
28     <#else>
29         没有数据
30     </#if>
31 </table>
32 
33 </body>
34 </html>
View Code

现在就可以启动工程,访问controller了,信息正常信息

至此在springboot中使用freemarker已完成。

接下来看看使用thymeleaf模板,thymeleaf模板是springboot默认使用的模板,模板文件默认路径是在src/main/resources/templates下,和上文一样,只需要在pom.xml文件中引入对应的jar。

创建模板:

 1 <!DOCTYPE html>
 2 <html xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org">
 3 <head>
 4 <meta charset="UTF-8" />
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8 hello <span style="color:red" th:text="${name}"></span>
 9 </body>
10 </html>
View Code

创建controller:

 1 /**
 2  * 
 3  */
 4 package com.allen.springboot.learn.controller;
 5 
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.ui.Model;
 8 import org.springframework.web.bind.annotation.RequestMapping;
 9 
10 /**
11  * @author admin
12  *
13  */
14 @Controller
15 @RequestMapping("/thymeleaf")
16 public class ThymeleafController {
17     
18     @RequestMapping("/hello")
19     public String helloThymeleaf(Model model){
20         model.addAttribute("name", "Thymeleaf");
21         return "tmf";
22     }
23     
24 }
View Code

接下来启动项目,访问controller中的地址,浏览器端显示如下内容

 

转载于:https://www.cnblogs.com/Allen-Wl/p/8461276.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

姚期智:当科学家发现自己喜欢探索的方向,整个世界会像打游戏一样愉悦

来源&#xff1a;上观新闻 作者&#xff1a;舒抒发现一个大定理的喜悦程度&#xff0c;和小时候吃第一口冰激凌、第一块巧克力是一样的。“走在滨江大道&#xff0c;能闻到江风吹来的桂花香。”夏秋交替之际来到上海&#xff0c;江风、江景和丹桂飘香&#xff0c;让姚期智在演讲…

imageloader图片基本加载

初始化&#xff1a; 配置初始化&#xff1a; <application android:name".Jiaimgapp"使用&#xff1a; http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/hudashi/ar…

刚获得物理诺奖的数学家:现实是对完美数学真理的扭曲反应,人脑是最终量子计算机!...

来源&#xff1a; 数学竞赛的那些事儿在20世纪中期&#xff0c;数学探究自然模式的能力被大大地增强了&#xff0c;如果那些远古的几何学者们看到这一切&#xff0c;必将大为惊愕甚至迷惑不解&#xff0c;在极为宏观的尺度上&#xff0c;天文学家们以整个银河系为基本单位&…

如何实时查看linux下的日志

如何实时查看linux下的日志 Unix/linux&#xff08;88&#xff09; cat /var/log/*.log 如果日志在更新&#xff0c;如何实时查看 tail -f /var/log/messages 还可以使用 watch -d -n 1 cat /var/log/messages -d表示高亮不同的地方&#xff0c;-n表示多少秒刷新一次。 该指令&…

2020年世界机器人报告

来源&#xff1a;国际机器人联合会最新的《2020年世界机器人报告》(The new World Robotics 2020 Industrial Robots)显示&#xff0c;在世界各地的工厂中运行的270万台工业机器人&#xff0c;创下纪录&#xff0c;增长了12&#xff05;。新机器人的销量保持较高水平&#xff0…

2020年诺贝尔化学奖得主自述:基因编辑技术将把我们带向何方?

来源&#xff1a;赛先生作者 ┃ Jennifer Doudna &#xff08;美国加州大学伯克利分校化学与分子和细胞生物学系教授&#xff09;翻译 ┃ 马宗敏制版编辑 | 栗子北京时间2020年10月7日下午&#xff0c;诺贝尔奖化学奖授予了基因编辑领域的两位先驱。加州大学伯克利分校教授詹妮…

使用travelbook架设自己的实时位置共享服务

travelbook 是一款开源的安卓APP&#xff0c;它能以低功耗提供实时位置共享&#xff0c;它包含功能如下&#xff1a; 好友之间分享实时位置&#xff1b;记录行程轨迹&#xff1b;标记收藏地点&#xff1b; 这款软件的主要解决的问题包括&#xff1a; 场景1&#xff1a;查看老…

揭秘:1.2亿美元光刻机内部视频曝光,像科幻片一样震撼!

来源&#xff1a;直观学机械 &#xff0c;转今日半导体荷兰阿斯麦&#xff08;ASML&#xff09;公司的光刻机作为世界上最贵最精密的仪器&#xff0c;相信大家都有耳闻&#xff0c;它是加工芯片的设备。其最先进的EUV&#xff08;极紫外光&#xff09;光刻机已经能够制造7nm以下…

树状数组-神奇的二进制

树状数组是解决快速更新以及统计数组某段区间总和&#xff0c;设一个数组A[1-N],需要计算A[M-K]的总和&#xff0c;暴力解法需要O(K-M)&#xff0c;如果我们求出sum&#xff08;1-K&#xff09;和sum&#xff08;1-M&#xff09;,那么答案就是sum(1-M)-sum(1-K); 那么如何快速求…

通往诺贝尔奖之路:盘点10个著名的科学家族

文章 | COLIN HUNTER来源 | 科研大匠科学家们常常将最亲近的合作者当做自己的亲人看待&#xff0c;而对于有些科学家而言&#xff0c;他们的合作者就是他们的家人。无论是由于遗传因素、教育因素还是二者的综合影响&#xff0c;那些开创性的物理学研究往往是一项家庭事业。从杰…

20165212 预备作业3 Linux安装及学习

20165212 预备作业3Linux安装及学习 Linux虚拟机的安装过程 我像大部分同学一样&#xff0c;通过助教学姐给的Ubuntu下载地址下载映像文件、VB&#xff0c;但是屡次出现问题&#xff0c;不停的闪出一下错误提示窗口&#xff1a;在像同学求助无果之后我使用VM、Ubuntu安装了Linu…

特斯拉公布的「新电池」,究竟要用在哪里?

来源丨ArsTechnica作者丨SCOTT K. JOHNSON编译丨科技行者在近期的“电池日&#xff08;battery day&#xff09;”活动上&#xff0c;特斯拉公司终于透露了其长期保密项目的一系列惊人消息——讨论了特斯拉为自家电池组做出的全方位升级与改进&#xff0c;并宣称有望在未来三年…

Python 程序 可以一直输入 quit_从零开始学Python - 第002课:第一个Python程序

在上一课中&#xff0c;我们已经了解了Python这门语言并安装了运行Python程序所需的环境&#xff0c;相信大家已经迫不及待的想开始自己的Python编程之旅了。首先我们来告诉大家在哪些地方可以写Python程序。编写代码的工具交互式环境我们打开Windows的“命令行提示符”工具&am…

清华张钹院士专刊文章:迈向第三代人工智能(全文收录)

来源&#xff1a;清华大学人工智能研究院作者&#xff1a;张钹、朱军、苏航在这篇评述文章中&#xff0c;清华大学人工智能研究院院长、中国科学院院士张钹教授阐述了自己对于「第三代人工智能」的看法。他认为&#xff0c;第三代 AI 发展的思路是把第一代的知识驱动和第二代的…

java 垂直走马灯多行,Android实现图文垂直跑马灯效果

最近在维护老项目&#xff0c;老项目有一个地方需要修改&#xff0c;就是垂直跑马灯的问题&#xff0c;之前的垂直跑马灯是只有文字跑马灯&#xff0c;新版需要加上。之前是用的MarqueeView&#xff0c;看了下源代码是只支持文字的&#xff0c;于是我就改了下原作者的源代码。M…

惠普打印机怎么无线连接电脑_惠普打印机连不上无线?怎么解!

打印机有无线功能&#xff0c;但却总连不上路由&#xff0c;看着高大上的功能用不上&#xff0c;是不是很捉急&#xff1f;今天总结了5种打印机连接无线的方法&#xff0c;总有一款适合你~- 方 1 法 -在打印机屏幕上配置无线本方法适用于带有无线网络功能且有可视面板屏幕的打印…

mac 用户 文件夹 权限_Mac视频播放软件推荐

Mac上好用的视频播放器KPlayer mac是一款Mac上非常好用的视频播放器&#xff0c;这款播放器可以帮助用户观看各种高清的电影。这款KPlayer mac能够以标准和高清晰度打开和播放各类视频。通过设置H.264硬件加速&#xff0c;达到控制720p&#xff0c;1080p视频文件的渲染和播放的…

麦肯锡季刊 | 人工智能的发展与障碍

来源&#xff1a;麦肯锡作者&#xff1a;Michael Chui&#xff0c;Sankalp Malhotra受访者表示&#xff0c;人工智能正在迅速普及&#xff0c;但预计不会大规模减少企业用工人数。目前&#xff0c;仅有极少数企业具备让人工智能创造规模化价值的基本要素。麦肯锡一项以人工智能…

微星主板黑苹果_在老机器上LGA775平台安装黑苹果MacOS系统 – 玄烨品果

这篇算不得上是教程&#xff0c;顶多是玄烨个人心得而已。因为在装黑苹果这个技术上&#xff0c;玄烨并不是高手&#xff0c;最多是个入门的菜鸟。DSDT注入、驱动修改&#xff0c;通通都不会。能不显卡驱动好&#xff0c;网卡工作正常、声音搞定就满意了。开始分享安装过程。相…

毕马威发布《人工智能无处不在》研究报告:人工智能在五大行业的成就与挑战...

来源&#xff1a;AIII研究院毕马威近期发布了研究报告《人工智能无处不在》。该报告对751名在人工智能各行业应用领域具有一定了解的企业决策者进行调研并发布了“成绩单”&#xff0c;总结分析了人工智能在医疗保健、金融服务、交通运输、科技、零售业五大不同行业的应用表现与…