B.9. Template: Render Specific HTML Template

CODEORAYO COMMUNITY Programming Tutorial Go B.9. Template: Render Specific HTML Template

  • Post
    codeorayo
    Keymaster
    none
    Pada bab ini, kita akan belajar bagaimana cara untuk render template html tertentu. Sebuah file view bisa berisikan banyak template. Template mana yang ingin di-render bisa ditentukan.

    B.9.1. Front End

    Siapkan folder projek baru, buat file template bernama view.html, lalu isi dengan kode berikut.

    Code:

    {{define “index”}}


    Learning html/template Functions

    Index



    {{end}}

    {{define “test”}}


    Other Template

    Test



    {{end}}

    Pada file view di atas, terlihat terdapat 2 template didefinisikan dalam 1 file, template index dan test. Rencananya template index akan ditampilkan ketika rute / diakses, dan template test ketika rute /test diakses.

    B.9.2. Back End

    Selanjutnya siapkan back end program, buat file main.go, tulis kode berikut.

    Code:

    package main

    import “net/http”
    import “fmt”
    import “html/template”

    func main() {
    http.HandleFunc(“/”, func(w http.ResponseWriter, r *http.Request) {
    var tmpl = template.Must(template.New(“index”).ParseFiles(“view.html”))
    if err := tmpl.Execute(w, nil); err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    }
    })

    http.HandleFunc(“/test”, func(w http.ResponseWriter, r *http.Request) {
    var tmpl = template.Must(template.New(“test”).ParseFiles(“view.html”))
    if err := tmpl.Execute(w, nil); err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    }
    })

    fmt.Println(“server started at localhost:9000”)
    http.ListenAndServe(“:9000”, nil)
    }


    Pada kode di atas bisa dilihat, terdapat 2 rute yang masing-masing memparsing file yang sama, tapi spesifik template yang dipilih untuk di-render berbeda.

    Contoh di rute /, sebuah template dialokasikan dengan nama index, kemudian di-parsing-lah view bernama view.html menggunakan method ParseFiles(). Golang secara cerdas akan melakukan mencari dalam file view tersebut, apakah ada template yang namanya adalah index atau tidak. Jika ada akan ditampilkan. Hal ini juga berlaku pada rute /test, jika isi dari template bernama test akan ditampilkan tiap kali rute tersebut diakses.

    B.9.3. Test

    Lakukan tes pada program yang telah kita buat, kurang lebih hasilnya seperti pada gambar berikut.

  • You must be logged in to reply to this topic.