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



在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"> 
// 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))
    }

这应该是正确的。

最新更新