Ich muss ein struct-Array (Laden von Mysql) innerhalb einer Vorlage HTML darstellen. aber die template.Execute() -Methode schreibt die Antwort als String, nicht als HTML-Seite. kann mir jemand helfen?golang wie man die template.Execute schreiben als HTML-Seite
import (
"fmt"
"log"
"time"
"net/http"
"database/sql"
_ "github.com/go-sql-driver/mysql"
s "strings"
"html/template"
"io/ioutil"
)
var p = fmt.Println
type ListData struct{
Id int
Os sql.NullString
Title string
}
func searchHandler(w http.ResponseWriter, r *http.Request) {
db,er := sql.Open("mysql","root:[email protected](localhost:3306)/collection")
cursor := []ListData{}
for rows.Next() {
//load data here....
}
t, pErr := template.ParseFiles("./admin/list.html")
if pErr != nil {
panic(pErr)
}
pErr = t.Execute(w, cursor)
if pErr != nil {
http.Error(w, pErr.Error(), http.StatusInternalServerError)
return
}
}//end of searchHandler
func main(){
p("start servlet.")
//other handlers
http.HandleFunc("/search", searchHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
ich einige einbetten gehen Code in dieser HTML-Dateien:
........
<thead>
<tr>
<th>id</th>
<th>os</th>
<th>title</th>
</tr>
</thead>
<tbody>
{{range .}}
<tr class="success">
<td>{{.Id}}</td>
<td>{{.Os}}</td>
<td>{{.Title}}</td>
</tr>
{{end}}
</tbody>
.....
kann nicht als HTML-Seite laden, nachdem template.Execute
getan
Vielen Dank! Es ist Arbeit. –