变量
grails传递数据的方式和现在流行的web框架很类似,比如
groovy 代码
- class BookController {
- def list = {
- ["books" : Book.list() ]
- }
- }
则在grails-app/views/book的list.gsp中就可以使用${books}变量了。
布局
grails中内嵌了sitemesh的实现,页面中写入
gsp代码
- <meta name="layout" content="main">meta>
则表示引入grails-app/views/layouts中的main.gsp控制布局。
标签
gsp的标签库还是相当发达的:http://grails.codehaus.org/GSP+Tag+Reference 。 这里先只写一些已经用到了的。
- select
- <g:select optionKey="id" optionValue="name" from="${District.list()}" name='district.id' value="${area?.district?.id}" >g:select>
参数有: from value optionKey optionValue keys noSelection valueMessagePrefix
- datePicker
- <g:datePicker precision="year" name='buildingTime' value="${apartment?.buildingTime}" years="${1970..2010}">g:datePicker>
参数有: name value precision noSelection years
- sortableColumn
- <g:sortableColumn property="id" title="Id" />
sortableColumn是写在table head中的,property是怎么关联的还没有看懂……
参数有:property defaultOrder Title titleKey params action
- formatDate
- <g:formatDate format="yyyy" date="${apartment.buildingTime}"/>
- link
- <g:createLinkTo dir="css" file="main.css" />
- <link type="text/css" href="${createLinkTo(dir:'css',file:'main.css')}" />
- <g:createLink action="show" id="1" /> == /shop/book/show/1
- <g:createLink controller="book" /> == /shop/book
- <g:createLink controller="book" action="list" /> == /shop/book/list
- <g:createLink url="[action:'list',controller:'book']" /> == /shop/book/list
- <a href="${createLink(action:'list')}">my linka>
- <g:link controller="book" action="list">Book Listg:link>
- <g:link url="[action:'list',controller:'book']">Book Listg:link>
- <g:link action="list" params="[sort:'title',order:'asc',author:currentBook.author]">
- Book List
- g:link>