pyecharts渲染图片

Nginx、Shiro

  返回  

使用模板来实现页面

2021/8/21 11:46:46 浏览:

模板其实就是一个(缺失了一些关键信息)的html页面,我使用的是Thymeleaf模板

使用模板的步骤:
(1)先去编写html页面,使用thymeleaf中的一些(特殊标记符号,也就是占位符比如th:each,th:text="${}",把这个html页面中的关键数据进行占位

(2)Servlet代码中获取到这些关键数据,再通过thymeleaf把这些关键性数据替换到Html页面中的特殊标记符号,也就是占位符中

(3)而在对关键性数据进行替换之前,要先对thymeleaf模板进行初始化

初始化模板一般是4个步骤(其实就是造引擎,找页面给引擎):

(1)创建一个TemplateEngine对象(模板引擎),负责把在Servlet代码中获取到这些关键数据,替换到模板中

(2)创建一个ServletContextTemplateResolver(servlet上下文模板解析器),负责找到html页面在哪,并加载供engine(引擎)来使用

(3)给resolver(解析器)设置一些属性,让他能够找到html模板页面在哪(啥样的文件被加载到内存中作为模板)

一般是用前后缀两个属性就可以找到:

① resolver.setPrefix("路径"),表示前缀,就是从那个路径开始(一般是在项目webapp/WEB-INF/template/路径下存放所有的模板文件)

② resolver.setSuffix("路径"),表示后缀(一般是 .html)

(4)找到了模板页面要交给engine引擎,所以就把resolver和engine要关联起来

方法就是引擎有一个方法engine.setTemplateResolver(解析器对象)

初始化完毕后模板引擎就可以使用解析到的模板html页面,也就可以使用thymeleaf来进行渲染

初始化有一个问题:同一个引擎要在很多servlet之间共享,可以使用ServletContext实现

把初始化engine的工作交给ServletContext,同时也把engine实力交给ServletContext管理

此时,因为任意servlet都能拿到同一个ServletContext对象,也就可以拿到同一个engine对象了

实现的方法:

希望ServletContext初始化完毕后立即初始化engine

借助监听器Listener

创建一个配置模板的类来实现ServletContextListener接口,并把这个类注释为@WebListener来声明为一个监听器,监听两个部分:ServletContext初始化完毕,ServletContext销毁完毕

(4)进行具体渲染

①渲染的时候需要定义“数据集合”这样的概念

使用WebContext,功能就是把要替换的数据收集起来,统一的传给模板引擎

收集的方式:webContext.setVariable()参数是一个或多个键值对,键就是${}里面的数据名称,值就是收集到的数据

②模板引擎进行渲染

模板引擎engine.process()参数a是模板文件名字(用那个模板页面),b是WebContext对象(传入收集到的数据),最后返回值就是一个html页面

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号