douhaoqiao9304 2018-01-02 07:17
浏览 177

如何在HTML文件Golang中获取此值

In HTML file, I want to get the ID and the Username, but how to do that? because what I got always a blank page.

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

I already tried using these in the HTML but still no luck.

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

how to call them?

Edited:

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

Edited again: (HTML files)

{{ 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条回答 默认 最新

  • dongyun8138 2018-01-02 07:42
    关注
    // 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))
        }
    

    This should be the correct one.

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站