内置变量

    访问默认的配置管理(config.toml)对象配置项。

    使用方式

    访问当前请求的Cookie对象参数值。

    使用方式

    1. {{.Cookie.键名}}

    访问当前请求的Session对象参数值。

    1. {{.Session.键名}}

    访问当前GET请求的Get请求参数值。

    使用方式

    访问当前POST请求的Post请求参数值。

    使用方式

    1. {{.Post.键名}}

    使用示例:

    1. package main
    2. import (
    3. "github.com/gogf/gf/g"
    4. "github.com/gogf/gf/g/net/ghttp"
    5. )
    6. func main() {
    7. s.BindHandler("/", func(r *ghttp.Request){
    8. r.Cookie.Set("theme", "default")
    9. r.Session.Set("name", "john")
    10. content :=`Config:{{.Config.redis.cache}}, Cookie:{{.Cookie.theme}}, Session:{{.Session.name}}, Get:{{.Get.name}}`
    11. r.Response.WriteTplContent(content, nil)
    12. })
    13. s.SetPort(8199)
    14. s.Run()
    15. }

    执行后,访问http://127.0.0.1:8199/?name=john,输出结果为:

    1. Config:127.0.0.1:6379,1, Cookie:default, Session:john, Get:john

    变量对象

    我们可以在模板中使用自定义的对象,并可在模板中访问对象的属性及调用其方法。

    示例:

    1. package main
    2. import (
    3. "github.com/gogf/gf/g"
    4. )
    5. type T struct {
    6. func (t *T) Hello(name string) string {
    7. return "Hello " + name
    8. }
    9. func (t *T) Test() string {
    10. return "This is test"
    11. }
    12. func main() {
    13. t := &T{"John"}
    14. v := g.View()
    15. content := `{{.t.Hello "there"}}, my name's {{.t.Name}}. {{.t.Test}}.`
    16. if r, err := v.ParseContent(content, g.Map{"t" : t}); err != nil {
    17. g.Dump(err)
    18. } else {
    19. g.Dump(r)
    20. }

    其中,赋值给模板的变量既可以是对象指针也可以是。但是注意定义的对象方法,如果为对象指针那么只能调用方法接收器为对象指针的方法;如果为对象变量,那么只能调用方法接收器为对象的方法。

    执行后,输出结果为: