Revel 是 Go 语言的框架,其思路完全来自 Java 的 [Play Framework](http://www.oschina.net/p/play-framework)。
控制器示例:
<pre class="brush:cpp; toolbar: true; auto-links: false;">// app/controllers/app.go
type Application struct {
*rev.Controller
}
func (c Application) Register() rev.Result {
title := "Register"
return c.Render(title)
}
func (c Application) SaveUser(user models.User, verifyPassword string) rev.Result {
c.Validation.Required(verifyPassword).Key("verifyPassword")
c.Validation.Required(verifyPassword == user.Password).Key("verifyPassword").
Message("Password does not match")
user.Validate(c.Validation)
if c.Validation.HasErrors() {
c.Validation.Keep()
c.FlashParams()
return c.Redirect(Application.Register)
}
_, err := c.Txn.Exec("insert into User (Username, Password, Name) values (?, ?, ?)",
user.Username, user.Password, user.Name)
if err != nil {
panic(err)
}
c.Session["user"] = user.Username
c.Flash.Success("Welcome, " + user.Name)
return c.Redirect(Hotels.Index)
}</pre>