zoukankan      html  css  js  c++  java
  • vert.x学习(六),动态模板与静态文件的结合

    这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用。

    编写DynamicReference.java

    package com.javafm.vertx.helloworld;
    
    import io.vertx.core.Vertx;
    import io.vertx.core.http.HttpServer;
    import io.vertx.ext.web.Router;
    import io.vertx.ext.web.handler.StaticHandler;
    import io.vertx.ext.web.templ.ThymeleafTemplateEngine;
    import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
    
    /**
     * Created by lemontea <36634584@qq.com> on 16-12-20.
     */
    public class DynamicReference {
        public static void main(String[] args) {
            Vertx vertx = Vertx.vertx();
    
            ThymeleafTemplateEngine engine = ThymeleafTemplateEngine.create();
            ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
            resolver.setPrefix("templates");
            resolver.setSuffix(".html");
            resolver.setTemplateMode("HTML5");
            engine.getThymeleafTemplateEngine().setTemplateResolver(resolver);
    
            Router router = Router.router(vertx);
    
            // 配置动态文件访问路径
            router.route("/hello").handler(routingContext -> {
                routingContext.put("msg", "DynamicReference.");
                engine.render(routingContext, "/hello", res -> {
                    if (res.succeeded()) {
                        routingContext.response().putHeader("Content-Type", "text/html").end(res.result());
                    } else {
                        routingContext.fail(res.cause());
                    }
                });
            });
    
            // 配置静态文件
            router.route("/*").handler(StaticHandler.create());
    
            HttpServer httpServer = vertx.createHttpServer();
            httpServer.requestHandler(router::accept).listen(8080);
        }
    }

    在这里通过/*来匹配所有的静态文件,而动态模板,则用单个的route来配置,这里是/hello

    编写动态模板文件resources/templates/hello.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--在动态模板里面引用静态css文件-->
        <link rel="stylesheet" href="/css/style.css">
    </head>
    <body>
    <h1 th:text="${msg}"></h1>
    </body>
    </html>

    在这里引入了一个style.css文件,给h1标签设置了颜色样式。这个css文件与上篇学习中的css文件是同一个。

    运行http服务,在浏览器查看效果

    我们可以看到,访问动态页面的时候,为msg设置了值,并且引用了静态css文件。

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

  • 相关阅读:
    食物链(带权&种类并查集)
    抓屏工具 faststone capture
    ViewerJS 一个在浏览器上查看 PDF 和电子表格的 JavaScript 库
    html中调用本地exe应用程序
    html+css构成的框架,可自行改造
    普通人每天应该睡多长时间??
    利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)
    解决在IE11浏览器上,css样式不起作用的问题
    Dreamweaver cs6 的安装与破解
    博客生活第一天
  • 原文地址:https://www.cnblogs.com/tangjizhong/p/6203787.html
Copyright © 2011-2022 走看看