- 在Web应用中,模板引擎会把模板和数据进行合并,生成将要返回给客户端的HTML。
- Go的标准模板引擎定义在
html/template
包当中。 - Go模板引擎的工作方式就是对一个模板进行语法分析,接着在执行这个模板的时候,将一个
ResponseWriter
以及一些数据传递给它。被调用的模板引擎会对传入的已分析模板以及数据进行合并,然后把合并的结果传递给ResponseWriter。
- Go的模板拥有一系列丰富多样并且威力强大的动作,这些动作就是一系列命令,它们可以告诉模板应该以何种方式与数据合并.
- 除了动作之外,模板还可以包含参数、管道和变量:其中参数用于表示模板中的数据值,管道用于串联起多个参数和函数,至于变量则会作为动作的组件而存在。
- Go拥有一系列受限的模板函数。此外,通过创建一个函数映射并将它与模板进行绑定,用户也可以创建出自己的模板函数。
- Go的模板引擎可以根据数据所在的位置改变数据的显示方式,这种上下文感知特性能够有效地防御XSS攻击。
- 人们在设计一个拥有一致外观和使用感受的Web应用时,常常会用到Web布局,Go可以使用嵌套模板来实现Web布局。