2015-06-05 2 views
-1

У меня есть файл шаблона template.html как следоватьExecute шаблон в файл

Hello {{.Name}}, welcome! 

и код

import (
    "fmt" 
    "text/template" 
) 
func main() { 
    type person struct { 
    Name string 
    } 

    p := &person{"clinyong"} 
    t := template.Must(template.New("template.html").ParseFiles("template.html")) 
    f, err := os.OpenFile("test", os.O_CREATE, 0777) 
    if err != nil { 
    fmt.Println(err) 
    return 
    } 
    defer f.Close() 

    err := t.Execute(f, p) 
    if err != nil { 
     fmt.Println(err) 
    } 
} 

t.Execute(f, p) вызывает ошибку, сказав, что е является плохой дескриптор файла.

Возможно ли выполнить вывод шаблона в файл, как показано выше? Я вижу несколько примеров: f в Execute почти http.ResponseWriter или os.Stdout.

+0

Вы опускаете ошибку, возвращенную 'os.OpenFile', проверьте ее (!!!) Я полагаю, что это не ноль. – thwd

+0

Ошибка здесь nil ... – clinyong

+0

Хорошо, тогда вы делаете это правильно, хм. Можете ли вы отправить строчную строку ошибки, которую вы получаете? – thwd

ответ

2

Как сказал @TimCooper, мне нужно включить os.O_WRONLY в os.OpenFile.