发表于: 2017-08-08 21:28:03

2 817


今天完成的事情:上午帮师弟们解决任务难题,下午晚上学习thymeleaf 

周一和张帆师兄语音聊天,师兄向我询问家铭的进度情况,确实在任务七拖了太久,自己这个首席当的不称职。师兄给出了解决方案,找之前的几个武汉大师兄来帮家铭快速通过任务7。

然后上午我把这边家铭甘乐他们和三个去北京的师兄拉了一个讨论组,来解决问题。甘乐的日报一直很水,内容很宽泛,没有具体步骤,我这边没法根据他的日报追踪他的问题,叫三个师兄指导了他一下,我想他应该是明白该怎么写了。

家铭的空指针异常报500的错,在三个师兄的教导下也解决了,他的容联云的jar包是自己手动导进来的,使用maven install命令会报错,提示找不到所需要的包。经过师兄指点,在本地先找到容联云SDK的Jar包,通过Maven命令打包,将jar包安装到本地repository中,再在pom文件中引用,解决问题,准备开始任务八。具体打包命令如下,-Dfile指定路径 后面几个分别为指定 groupId artifactId version 还有打包格式

mvn install:install-file -Dfile=my-jar.jar -DgroupId=org.richard -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar

算是学习了,之前我只用了七牛云,提供了基于Maven的构建项目,所以这方面没有踩过坑。

下午学习Thymelaf,springboot官方推荐。

thymeleaf介绍

简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:

1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

2.Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

3.Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。


thymeleaf 的最大的优势:离前端更近,让视图(或者说UI)开发协作更简单,与后端开发解耦,这个优势是其它任何JAVA模板引擎(非自然模板引擎)无法超越的


引入依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

配置视图解析器

在application.properties中可以配置thymeleaf模板解析器属性.就像使用springMVC的JSP解析器配置一样

#thymeleaf start
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
#thymeleaf end

编写控制器

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HelloController {

private Logger logger = LoggerFactory.getLogger(HelloController.class);
   /**
    * 测试hello
    * @return
    */
   @RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(Model model) {
model.addAttribute("name", "Dear");
       return "hello";
   }

}

VIEW

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
   <title>hello</title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<!--/*@thymesVar id="name" type="java.lang.String"*/-->
<p th:text="'Hello!, ' + ${name} + '!'" >3333</p>
</body>
</html>

效果

这里写图片描述

明天计划的事情:准备小课堂

遇到的问题:前端的东西看起来脑壳痛

收获:学习thymeleaf 


返回列表 返回列表
评论

    分享到