revel
install
go get github.com/revel/revel
go get github.com/revel/cmd
create new app
revel new git.oschina.net/zdglf/myapp
run app
revel run git.oschina.net/zdglf/myapp
other cmd
revel build
revel package
revel test
templete
include other templete
//Paths are relative to app/views
{{template "header.html" .}}
array
{{append . "moreScripts" "js/jquery-ui-1.7.2.custom.min.js"}}
{{range .moreStyles}}
{{end}}
set
{{set . "title" "Basic Chat room"}}
range 中使用 eq
{{$page := .page}}
{{range .page_range}}
{{if eq . $page}}
{{end}}
{{end}}
设置 app.conf
在所有情况下生效
自定义通过 revel.Config 访问
[dev]
在dev 情况下生效
[prod]
在生产环境下 情况下生效
多语言
代码上通过c.Message("key") 访问
模板上通过 {{msg . "key"}} 访问
配置上
/app
/messages
messages.en
messages.fr
//messages.en
key=value
日志
//TRACE - 调试信息
//#INFO - 一般信息
//WARN - 警告信息
//ERROR - 错误信息
//在生产环境中:
//info 和 trace 日志将被忽略
//警告 和 错误信息被写入 log/sampleapp.log 文件
now := time.Now()
revel.TRACE.Printf("%s", now.String())
参数检验
//代码上
c.Validation.Required(setting).Message(c.Message("key"))
if c.Validation.HasErrors() {
// 设置被带回的flash cookie错误信息
c.Flash.Error("Settings invalid!")
// 在flash cookie中保存验证错误
c.Validation.Keep()
// 复制所有给定的参数(URL, Form, Multipart)到flash cookie
c.FlashParams()
return c.Redirect(App.ShowSettings)
}
//模板上
{{if .errors}}
{{if .errors.setting}}
{{.errors.setting.Message}}
{{end}}
{{end}}
### 拦截器