所有的Controller类的命名都以Controller
结尾,并放在grails-app/controllers文件夹中
Controller中所有的public
方法,都可以被web请求访问
在一个空的Controller中加入static scffold = true
或者static scaffold = <领域类的类名>
,运行时将会动态生成相应的controller脚手架和GSP页面。
Controller中默认从org.codehaus.groovy.grails.plugins.web.API.ControllersAPI
混入超过30个方法:
另外,voID render(Converter converter)
和voID Jsonheader(Object value)
从org.codehuas.groovy.grails.plugins.converts.API.ConvertersControllersAPI
混入。Object withFormat(Closurecallable)
方法从org.codehaus.groovy.grials.plugins.web.API.ControllersMimeTypesAPI
混入。
如果一个controller中的action的名称,与其使用的GSP的名称相同,GSP放在相应的文件夹中,这时,你可以不用设置action对应的GSP。
例如:
class UserController{ def List(){ [conut: count,users: users] } }
如果grails-app/vIEws/user/文件夹中存在List.gsp,那么grails将使用List方法返回的[count:count,users: users]
来渲染List.gsp。当然,你可以指定gsp页面,例如:
def List(){ render(vIEw: 'List',model: [conut: count,users: users]) }
可以从params
map中拿到web请求的参数,或者调用某个重载了bindData
的方法
GSP布局约定。在GSP的head
标签中定义:<Meta name='layout' content='main'>
,意指使用grails-app/vIEws/layouts/main.gsp
作为该gsp页面的模板。使用的是Sitemesh模板技术。在Contoller级定义模板只需要在Controller类中设置布局属性:static layout = 'main'
。全局模板定义需要在Config.groovy中定义:grails.sitemesh.default.layout = 'main'
,Grails默认使用grails-app/vIEws/layouts/application.gsp
作为页面的模板。只需要在相应的级别放入模板页面,Grails将自动使用该模板。
所有的URI规则约定配置在urlmappings.groovy中,默认使用RESTfull风格。
Service约定。所有的Service类约定入在grails-app/services
文件夹中,名称要求以Service
结尾。所有的Service的方法默认是加事务的。默认情况,所有的service都将注册为Spring的一个bean,并且是singletons的。可以在service加入属性static scope = 'session'
就可以更改其范围。bean的名称就是该Service类名第一个字母小写。
所有domain类都放在grails-app/domain
文件夹中,doamin类所有字段默认都被持久化,不论字段访问范围(如public,private等)。类名将为表名,类中的字段名对应表中的字段名,不论类名、类中的字段名,如果是驼峰的,Grails将使用下划线+小写代替大写。
实体的实例,包括20个实例方法:
* Object attach() * voID clearErrors() * voID delete() * voID delete(Map) * voID discard() * Errors getErrors() * Map getPropertIEs() * Boolean hasErrors() * Serializable IDent() * boolean instanceOf(Class) * boolean isAttached() * Object lock() * Object merge() * Object merge(Map) * Object mutex(Closure) * Object refresh() * Object save() * Object save(Map) * Object save(boolean) * BindingResult setPropertIEs(Object) * String toString() * boolean valIDate() * boolean valIDate(boolean) * boolean valIDate(List) * boolean valIDate(Map)
包含70个静态方法:
* static Integer count()* static Criteria createCriteria()* static voID deleteall(Object[])* static voID deleteall(Iterable)* static List executequery(String)* static List executequery(String,Collection)* static List executequery(String,Map)* static List executequery(String,Collection,Map,Map)* static Integer executeUpdate(String)* static Integer executeUpdate(String,Map)* static Integer executeUpdate(String,Collection)* static Integer executeUpdate(String,Map)* static boolean exists(Serializable)* static Object find(Object)* static Object find(String)* static Object find(Closure)* static Object find(Object,Map)* static Object find(String,Map)tatic Object find(String,Collection)* static Object find(String,Map)* static List findAll()* static List findAll(Object)* static List findAll(String)* static List findAll(Closure)* static List findAll(Object,Map)* static List findAll(String,Collection)* static List findAll(Map,Closure)* static List findAll(String,Map)* static List findAllWhere(Map)* static List findAllWhere(Map,Map)* static Object findOrCreateWhere(Map)* static Object findOrSaveWhere(Map)* static Object finDWhere(Map)* static Object finDWhere(Map,Map)* static Object first()* static Object first(String)* static Object first(Map)* static Object get(Serializable)* static List getAll()* static Integer getCount()* static PersistentEntity getGormPersistentEntity()* static Map getValIDationErrorsMap()* static Map getValIDationSkipMap()* static Object last()* static Object last(String)* static Object last(Map)* static List List()* static List List(Map)* static Object load(Serializable)* static Object lock(Serializable)* static Object merge(Object)* static Object proxy(Serializable)* static Object read(Serializable)* static List saveAll(Iterable)* static List saveAll(Object[])* static DetachedCriteria where(Closure)* static DetachedCriteria whereAny(Closure)* static DetachedCriteria whereLazy(Closure)* static Object withCriteria(Closure)* static Object withCriteria(Map,Closure)* static Object withDatastoreSession(Closure)* static Object withNewSession(Closure)* static Object withNewTransaction(Closure)* static Object withSession(Closure)* static Object withTransaction(Closure)static Object withTransaction(Closure)* static Object withTransaction(TransactionDeFinition,Closure)总结
以上是内存溢出为你收集整理的Grails中的约定全部内容,希望文章能够帮你解决Grails中的约定所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)