github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume2/section1/templatedemo/templatedemo.go (about) 1 // Simple example of creating and using a template in Go 2 package main 3 4 import ( 5 "html/template" 6 "log" 7 "net/http" 8 ) 9 10 // Type representing a gopher 11 type Gopher struct { 12 Name string 13 } 14 15 // Handler for the hello-gopher route 16 func helloGopherHandler(w http.ResponseWriter, r *http.Request) { 17 18 var gophername string 19 gophername = r.URL.Query().Get("gophername") 20 if gophername == "" { 21 gophername = "Gopher" 22 } 23 gopher := Gopher{Name: gophername} 24 renderTemplate(w, "./templates/greeting.html", gopher) 25 26 } 27 28 // Template rendering function 29 func renderTemplate(w http.ResponseWriter, templateFile string, templateData interface{}) { 30 t, err := template.ParseFiles(templateFile) 31 if err != nil { 32 log.Fatal("Error encountered while parsing the template: ", err) 33 } 34 t.Execute(w, templateData) 35 } 36 37 func main() { 38 http.HandleFunc("/hello-gopher", helloGopherHandler) 39 http.ListenAndServe(":8080", nil) 40 }