Gsp 标签

所有的gsp标签都以前缀g:开始,所有以g:开始的标签都会自动被认为是gsp标签,而且你不用像jsp那样引入标签库。一个简单的gsp标签如下:<g:example/>。

(1)我们可以使用<g:set/>来定一个变量,例如<g:set var=”now” value=”${new Date()}” />,我们定义了一个变量now,通过设置它的存在区域,可以在不同的地方引用它,具体这个标签的用法可以查看文档。一个变量的作用域有”page”,”session”,”flash”,”application”,”request”。

(2)我们使用gsp标签<g:each><g:while>和<g:if>来实现可以实现循环和判断。下面是一段既有循环和判断的代码:

<g:each in=”${[1,2,3]}” var=”num”>
<g:if test=”${num>2}”>

Number ${num}

(3)我们使用<g:findAll/>标签来实现查找功能,<g:grep/>实现过滤功能。

例如:<g:findAll in=”${books}”,expr=”it.author==’fred’>

${it.title}

</g:findAll>这个expr属性起了过滤器的作用。

<g:grep in=”${books}” filter=”NonFictionBooks.class”>

Title: ${it.title}

(4)<g:link>标签可以帮助你来连接到不同的controller和action。例如:

<g:link controller=”Book” action=”list”>Book List</g:link>具体的用法可以参考文档。

(5)gsp提过了许多不同的标签来处理html中的表单字段,<g:form>标签是其中一个,他的url属性可以连接到你指定的controll和action上,例如:

<g:form name=”myForm” url=”[controller:‘book’,action:‘list’]“>他还有action,controller属性,具体用法可参考文档。

表单字段可以是textField,checkBox,radio,hiddenField,select.

(6)标签可以作为方法调用。在gsp页面,例如:<g:createLinkTo>这个标签

//如果标签作为属性时,这种方法很有用
<img src=”<g:createLinkTo dir=”images” file=”grails_logo.jpg”/>”>

上边的两行代码最终实现的功能是一样的。标签不仅可以在gsp页面作为方法调用,而且也可以在controller中使用。例如

def image = createLinkTo(dir:”images”,file:”grails_logo.jpg”),另外为了避免名字冲突,我们可以这样使用g.createLinkTo,这里g.作为命令空间。