Я написал эту Go Lang код для обслуживания веб-страницы с шаблоном и значением параметров передаются через программу GoGo веб-страница шаблон служил Blank
// +build
package main
import (
"html/template"
"io/ioutil"
"net/http"
)
type Blog struct {
title string
heading string
para string
}
func loadfile(filename string) (string, error) {
byte, err := ioutil.ReadFile(filename)
return string(byte), err
}
func handler(w http.ResponseWriter, r *http.Request) {
blog := Blog{title: "GoLang", heading: "WebServer", para: "coding"}
t, err := template.ParseFiles("test.html")
fmt.Println(err)
t.Execute(w, blog)
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":9000", nil)
}
HTML файл шаблон с именем, как test.html следующий
<html>
<head>
<title>{{.title}}</title>
</head>
<body>
<h1>{{.heading}}</h1>
<p>{{.para}}</p>
</body>
</html>
Когда я запускаю программу, проблема в том, что обслуживаемая страница выглядит пустой. Параметры, которые должны были быть переданы в шаблон, не отображаются на отображаемой странице. Я даже напечатал ошибку, но нет никакой ошибки
Спасибо вам большое. Я не знал, что не-капитал делает переменную приватной. Так что просто вопрос об этом - если переменные struct являются частными, мы можем использовать их только в функциях struct? – Tahseen
Если поле является частным, будет видно только в области пакета, в вашем примере оно будет доступно в любом файле внутри ** основного ** пакета, но поскольку 't.Execute()' находится в другом pkg, не будет для доступа к полям. Это способ сделать инкапсуляцию в Go ** private **: нижний регистр, ** public **: верхний регистр –