Hello World
本文通过快速实现“Hello World”应用程序,你也可以从 the Play! example 上运行 “Hello World” 应用程序。
我们从之前创建的myapp 项目开始,编辑 app/views/App/Index.html模板, 添加下面的表单:
<form action="/App/Hello" method="GET">
<input type="text" name="myName" /><br/>
<input type="submit" value="Say hello!" />
</form>
刷新页面,看看我们的改动变化没。
让我们尝试提交该表单看看变化。
提示出错了,没有找到控制器方法Hello. 让我们为App控制器添加Hello方法 app/controllers/app.go:
func (c App) Hello(myName string) revel.Result {
return c.Render(myName)
}
下一步, 我们创建一个视图(模板文件). 创建一个 app/views/App/Hello.html文件, 内容如下:
{{set . "title" "Home"}}
{{template "header.html" .}}
<h1>Hello {{.myName}}</h1>
<a href="/">Back to form</a>
{{template "footer.html" .}}
刷新页面,你会看到一个问候:
最后,让我们添加一些验证。该名称应要求至少有三个字符。
我们需要使用 验证模块. 编辑 App 控制器的 Hello 方法 app/controllers/app.go:
func (c App) Hello(myName string) revel.Result {
c.Validation.Required(myName).Message("Your name is required!")
c.Validation.MinSize(myName, 3).Message("Your name is not long enough!")
if c.Validation.HasErrors() {
c.Validation.Keep()
c.FlashParams()
return c.Redirect(App.Index)
}
return c.Render(myName)
}
现在可以保存用户名并返回到 Index
页面了,如果没有输入有效的名称,那么名字和验证错误都保存在 Flash, 这是一个临时的cookie。flash.html
模板会显示错误或提示信息。
{{if .flash.success}}
<div class="alert alert-success">
{{.flash.success}}
</div>
{{end}}
{{if or .errors .flash.error}}
<div class="alert alert-error">
{{if .flash.error}}
{{.flash.error}}
{{end}}
{{if .errors}}
<ul style="margin-top:10px;">
{{range .errors}}
<li>{{.}}</li>
{{end}}
</ul>
{{end}}
</div>
{{end}}
当验证未通过时,我们希望用户可以重新提交之前对其进行编辑。修改您模板app/views/App/Index.html template:
<form action="/App/Hello" method="GET">
<input type="text" name="" value=""/><br/>
<input type="submit" value="Say hello!" />
</form>
现在,当我们提交一个字母作为我们的名字:
成功,我们得到了一个错误提示。输入的内容被带回编辑。
当前内容版权归 gorevel.cn 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 gorevel.cn .