Groovy轻松入门——Grails实战之Web Flow篇

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:Spring Web Flow是Spring家族中的一位成员,他能简化Web应用的开发。在Grails0.6中就集成了Spring Web Flow这一Web应用开发利器。下面通过一个实例向大家展示一下在Grails中如何方便的使用Spring Web Flow。

  on("login"){...}.to "ok"表示点击login按钮后所要去的页面为ok,如果验证失败("daniel" != params.username || "123" != params.password),则利用内置的error(),使用户返回login页面;而on("register").to "showRegisterView"是类似的,不再累述。

  7,在grails-appviewsuser目录下新建一个名为“loginSystem”的子目录,该名称为UserController.groovy中的loginSystemFlow的“loginSystem”相对应。

  8,在grails-appviewsuserloginSystem目录下新建login.gsp,ok.gsp,showRegisterView.gsp三个GSP文件(这三个文件的文件名与

def loginSystemFlow = {
login {
...
}
ok()
showRegisterView()
}

  中粗体突显的state名相对应,其中login为start state,而ok和showRegisterView为end state) ,并将其内容修改为:

  login.gsp

< html >
< head >
< meta http-equiv ="Content-Type" 
content ="text/html; charset=UTF-8"  />
< meta name ="layout" content ="main"  />
< title > Login Page </ title >
</ head >
< body >
< div class ="nav" >
< span class ="menuButton" >< a class ="home"
href ="${createLinkTo(dir:'')}" > Home </ a >
</ span >
</ div >
< div class ="body" >
< h1 >
Login Page
</ h1 >
< g:if test ="${message }" >
< div class ="message" >
${message }
</ div >
</ g:if >
< g:form action ="loginSystem" method ="post" >
< div class ="dialog" >
< table >
< tbody >
< tr class ='prop' >
< td valign ='top' class ='name' >
< label for ='username' >
Username:
</ label >
</ td >
< td valign ='top' class ='value 
${hasErrors(bean:user,field:'username','errors')}' >
< input type ="text" 
id ='username' name ='username'
value ="${user?
.username?.encodeAsHTML()}"  />
</ td >
</ tr >
< tr class ='prop' >
< td valign ='top' class ='name' >
< label for ='password' >
Password:
</ label >
</ td >
< td valign ='top' class =
'value ${hasErrors(bean:user,field:'password','errors')}' >
< input type ="text" 
id ='password' name ='password'
value ="${user?
.password?.encodeAsHTML()}"  />
</ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class ="buttons" >
< span class ="button" >< g:submitButton class ="save"
name ="login" value ="Login" ></ g:submitButton >
</ span >
</ div >
< g:link action ="loginSystem" event ="register" >
Register </ g:link >
</ g:form >
</ div >
</ body >
</ html >
ok.gsp
${message } < br />
< g:link action ="loginSystem" > back to login page </ g:link >
showRegisterView.gsp
This is a register page < br />
< g:link action ="loginSystem" > back to login page </ g:link >

作者:山风小子    责编:豆豆技术应用

正在加载评论...