zaterdag 11 februari 2012

Kleine webserver met html template

Na wat voorbeelden te zoeken en deze voorbeelden aan te passen naar werkende code. Heb ik nu een kleine webserver opgezet die html toont met behulp van Go's template package. Ik vermoed dat mijn template package wat verouderd is en dat daardoor veel verschillende voorbeelden niet werkte. Ik heb hiervoor de google go versie gebruikt die je in men eerdere blog posts kan terugvinden.

Hieronder staat de code voor mijn main.go

// Webserver project main.go
package main
// Importing packages
import (
    "fmt"
    "http"
    "template"
)
// Data structure
type foo struct{
    Title string
    Header1 string
}
// In the Handler
func sayHello(w http.ResponseWriter, r *http.Request) {
    //creating our parser
    t, _ := template.ParseFile("./h1.html", nil)
    //creating our data struct
    f := &foo{Title:"NewTitle",Header1:"Header1"}
    //parsing our template and data struct
    t.Execute(f, w)
}
// Our main
func main(){
    fmt.Printf("Starting http Server ... \n")
    http.Handle("/", http.HandlerFunc(sayHello))
    err := http.ListenAndServe("0.0.0.0:8080", nil)
    if err != nil {
       fmt.Printf("ListenAndServe Error :" + err.String())
    }
}

Hieronder staat de code voor h1.html

<!DOCTYPE html>
<html>
  <head>
    <title>{.section Title}{@}{.or}SomeoneForgotTheTitle{.end}</title>
  </head>
  <body>
    <h1>{Header1}</h1>
  </body>
</html>
    

Geen opmerkingen:

Een reactie posten