在vert.x中使用模板解析,可以为我们带来很多方便。我这里学习了一下ClassLoaderTemplateResolver的简单使用。这次工程配置与上篇一样,不需要做任何多的配置。直接编写代码就可以了。

编写HelloThymeleafResolver.java

  1. package com.javafm.vertx.helloworld;
  2.  
  3. import io.vertx.core.Vertx;
  4. import io.vertx.core.http.HttpServer;
  5. import io.vertx.ext.web.Router;
  6. import io.vertx.ext.web.templ.ThymeleafTemplateEngine;
  7. import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
  8.  
  9. /**
  10. * Created by lemontea <36634584@qq.com> on 16-12-20.
  11. */
  12. public class HelloThymeleafResolver {
  13. public static void main(String[] args) {
  14. Vertx vertx = Vertx.vertx();
  15. HttpServer httpServer = vertx.createHttpServer();
  16. Router router = Router.router(vertx);
  17. ThymeleafTemplateEngine templateEngine = ThymeleafTemplateEngine.create();
  18. // 定时模板解析器,表示从类加载路径下找模板
  19. ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
  20. // 设置模板的前缀,我们设置的是templates目录
  21. templateResolver.setPrefix("templates");
  22. // 设置后缀为.html文件
  23. templateResolver.setSuffix(".html");
  24. templateResolver.setTemplateMode("HTML5");
  25. templateEngine.getThymeleafTemplateEngine().setTemplateResolver(templateResolver);
  26. router.route("/hello").handler(routingContext -> {
  27. routingContext.put("msg", "Hello ClassLoaderTemplateResolver!");
  28. // 这里render的第二个参数,就是模板文件名称,由于在Resolver里面设置了前缀和后缀这里就可以简写了
  29. templateEngine.render(routingContext, "/hello", res -> {
  30. if (res.succeeded()) {
  31. routingContext.response().putHeader("Content-Type", "text/html").end(res.result());
  32. } else {
  33. routingContext.fail(res.cause());
  34. }
  35. });
  36.  
  37. });
  38. httpServer.requestHandler(router::accept).listen(8080);
  39. }
  40. }

模板文件继续沿用之前的resources/templates/hello.html,现在右键启动http服务,在浏览器中查看

在附一张IDEA工程结构截图

源代码可以从github clone:https://github.com/tjz101/vertxworld

原创文章,转载请注明出处。

vert.x学习(四),使用模板解析器ClassLoaderTemplateResolver的更多相关文章

  1. CI 模板解析器类

    模板解析器类可以解析你的视图文件中的伪变量.它可以解析简单的变量或者以变量作为标签的结构.如果你以前没有用过模板引擎,那么伪变量如下所示: <html><head><ti ...

  2. 学习SpringMVC——说说视图解析器

    各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请求参数篇中都已经领略到了spring mvc注 ...

  3. 爬虫笔记(四)------关于BeautifulSoup4解析器与编码

    前言:本机环境配置:ubuntu 14.10,python 2.7,BeautifulSoup4 一.解析器概述 如同前几章笔记,当我们输入: soup=BeautifulSoup(response. ...

  4. PLAY2.6-SCALA(四) 请求体解析器

    一个http请求是一个请求头后面跟着一个请求体,头部信息比较短,可以安全的缓存在内存中,在Play中头部信息使用RequestHeader类进行建模.请求体的内容可能较大,使用流stream的形式进行 ...

  5. XML学习笔记——关于XML解析器

    本篇文章基于W3C而写 在Firefox及其他浏览器中的XML解析器(除IE) var xmlDoc=document.implementation.createDocument("&quo ...

  6. 学习使用re做解析器爬小说

    一.背景:近期学习python爬虫中看到,在对网页内容进行解析的技术中,re正则表达式工具也是一个很好的工具,使用re编制爬虫工具正好熟悉re正则表达式的使用. 二.环境及爬取目标 1.linux c ...

  7. 高性能Java解析器实现过程详解

    如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...

  8. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  9. python 之网页解析器

    一.什么是网页解析器 1.网页解析器名词解释 首先让我们来了解下,什么是网页解析器,简单的说就是用来解析html网页的工具,准确的说:它是一个HTML网页信息提取工具,就是从html网页中解析提取出“ ...

随机推荐

  1. macbook air 开机黑屏解决方法

    故障现象:1. 开机有声音2. 背面logo亮灯3. 键盘背光灯不亮4. 大写锁定键按下不亮5. 屏幕黑屏,无苹果logo 解决:重置PRAM后成功开机. 1. 关闭 Mac.2. 在键盘上找到以下按 ...

  2. showModalDialog打开页面有缓存,不走action

    当你设置的弹出网页固定时,ie很可能到临时文件区,下载上次产生的该页面,而没有重新加载,    对于动态加载的页面来说,这样往往产生误会,如没有及时更新数据,也就更不利于开发者测试.所以,你可以采用如 ...

  3. mysql缓存

    <cache/>字面上看就是这样.这个简单语句的效果如下: 映射语句文件中的所有 select 语句将会被缓存. 映射语句文件中的所有 insert, update 和 delete  ...

  4. 速度最快的Json序列框架Jil,入门动手实录

    好吧,我又先要贴出跑分图了,出处 Jil是一个面向Json的序列化框架,在Nuget上可以下载到 支持数据类型 值得一提的是,Guid指定带破折号格式(44B2673B-B5CA-477B-A8EA- ...

  5. 微软的R语言发行版本MRO及开发工具RTVS

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软在收购R语言的开发商后,也独立发行或在自己的产品中集成了R语言,这里就介绍下它们包 ...

  6. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

  7. LightOJ1126 Building Twin Towers(DP)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1126 Description Professor Sofdor Al ...

  8. Java直接(堆外)内存使用详解

    本篇主要讲解如何使用直接内存(堆外内存),并按照下面的步骤进行说明: 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 希望对想使用直接内存的朋 ...

  9. python函数

    一.函数: 创建函数:使用def语句 举例:定义一个返回斐波那楔数列列表的函数 def fibs(num): result = [0,1] for i in range(num-2): result. ...

  10. 指针与数组的区别 —— 《C语言深度剖析》读书心得

    原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下. 1. 意义: 指针: 指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节). ...