如何在html文件golang中获取此值

时间:2018-01-02 07:17:07

标签: html go struct handler

在HTML文件中,我想获取ID和用户名,但是如何做到这一点?因为我总是得到一个空白页面。

// DataHandler struct
type DataHandler struct {
    SessionDataHandler session.SessionData
}

// HomeHandler function
func HomeHandler(w http.ResponseWriter, r *http.Request) {
    sessionData := session.GetSession(w, r)
    data := DataHandler{
        SessionDataHandler: session.SessionData{
            ID:       sessionData.ID,
            Username: sessionData.Username,
        },
    }

    tmp, err := template.ParseFiles(
        "web/index.html",
        "web/template/header.html",
        "web/template/footer.html",
    )
    if err != nil {
        log.Fatal(err)
    }

    err = tmp.Execute(w, data)
    if err != nil {
        log.Println(err)
    }
}

我已经尝试在HTML中使用这些但仍然没有运气。

{{ .SessionDataHandler }}
{{ .SessionDataHandler.ID }}
{{ .SessionDataHandler.session.ID }}
{{ .SessionDataHandler.sessionData.ID }}
{{ .SessionDataHandler.session.sessionData.ID }}

如何打电话给他们?

编辑:

// SessionData struct
type SessionData struct {
    ID       int
    Username string
}

再次编辑:( HTML文件)

{{ template "header.html" . }}
{{ .SessionDataHandler.ID }}
  <!-- HOME PRO-->
  <div class="home-pro"> 

    <!-- PRO BANNER HEAD -->
    <div class="banr-head">
      <div class="container">
        <div class="row"> 

1 个答案:

答案 0 :(得分:2)

// package main  
package main

    import (
        "fmt"
        "os"
        "html/template"
    )

    type SessionData struct {
        ID int
        Username string
    }

    type dataHandler struct {
        SessionDataHandler SessionData
    }

    var data = dataHandler{
        SessionDataHandler: SessionData{
            ID:       123,       // This
            Username: "Joe", // and This
        },
    }

    var tmpl = `
    {{ .SessionDataHandler.ID }}
    `

    type dataHandler2 struct {
        SessionDataHandler SessionData
    }

    var data2 = dataHandler2{
        SessionDataHandler: SessionData{
            ID:       123,       // This
            Username: "Joe", // and This
        },
    }

    var tmpl2 = `
    {{ .SessionDataHandler.ID }}
    {{ .SessionDataHandler.Username }}
    `

    func main() {
        t, err := template.New("tmpl").Parse(tmpl)
        if err != nil {
            panic(err)
        }
        fmt.Println(t.Execute(os.Stdout, data))

        t2, err := template.New("tmpl").Parse(tmpl2)
        if err != nil {
            panic(err)
        }
        fmt.Println(t2.Execute(os.Stdout, data2))
    }
  

这应该是正确的。我的工作