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,一经查实,立即删除!

相关文章

php教程目录,php基础入门篇-文件和目录操作_PHP教程

一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用&#xff0c;有需要的朋友可以简单的参考一下。本章可以算是上一章的延续&#xff0c;介绍了除文件实际内容之外的附加信息&#xff0c;包括文件的大小、目录、访问权限等。文件系统中的某些函数只在服务器…

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

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

java 佳博打印机,佳博蓝牙打印的java 连接

适用于gp-3120tu机型通过蓝牙协议与android app的对接, 用的是TSC指令.package com.freestyle.demo;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import android.os.HandlerThread;import…

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;天文学家们以整个银河系为基本单位&…

Java注解中produces啥意思,注解@RequestMapping中的produces,consumes属性

今天在项目中看到了RequestMapping中有两个属性&#xff0c;consumes和produces&#xff0c;于是就想弄清楚这两个属性是干什么的。一、produces指定返回值类型&#xff0c;并且可以设置返回值类型和返回值的字符编码&#xff1b;demo/**属性produces"application/json&qu…

如何实时查看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…

$.getJSON()

$.getJSON(order.php,{op:detail,order_id:id},function(data){} ) 等价于 $.ajax({url: url,data: data,success: callback,dataType: json }); 转载于:https://www.cnblogs.com/xiaobiaomei/p/8464632.html

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

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

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

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

matlab怎么保存为透明图,matlab 透明图像 fig 保存

在网上发现如下codes&#xff0c;可以生成透明图形。%If you ever wondered how to get a matlab figure transparent(particularly usefull when you export it to formats that featuretransparency, like eps, gif, png, etc.), here is how you do it:% you created a figu…

揭秘: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;那些开创性的物理学研究往往是一项家庭事业。从杰…

apache php 脚本,PHP脚本不在Apache服务器上执行

问题描述我刚刚重新安装了Apache和PHP5但是当我访问我的doc root时它只下载了一个”download”文件。当我尝试documentroot /index.php时&#xff0c;它只是下载PHP文件。我安装了PHP&#xff0c;但Apache似乎不想执行它。人们建议在我的httpd.conf中添加’Load Module’线&…

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;并宣称有望在未来三年…

matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc

数字信号处理课程设计题目&#xff1a;通过重叠相加法实现卷积院系&#xff1a;自动化与信息工程学院专业&#xff1a;通信工程班级: 通信091学号: 3090432028姓名: 雷帛川指导教师: 李建勋职称: 副教授2012年7月1日2012年7月14日用结构化设计方法。一个程序划分成若干模块&…

从工程文化和运维理念理解Netflix

http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture 在技术圈儿&#xff0c;Netflix 是一家非常有特色的互联网公司。他们信奉“自由与责任”的企业文化&#xff0c;鼓励工程师发挥自己的爱好与特长&#xff1b;特别开放&#xff0c;很多内部系统都开源了&…