Grails中的约定

Grails中的约定,第1张

概述Grails是一个约定胜于配置的框架。以下是Grails在controller,servic,domain等方面的约定。 Controller和View的约定 所有的Controller类的命名都以Controller结尾,并放在grails-app/controllers文件夹中 Controller中所有的public方法,都可以被web请求访问 在一个空的Controller中加入stati Grails是一个约定胜于配置的框架。以下是Grails在controller,servic,domain等方面的约定。 Controller和VIEw的约定

所有的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个方法:

Object bindData(Object target,Object args) (plus five variants) Object chain(Map args) String forward(Map params) String getActionname() String getActionUri() ApplicationContext getApplicationContext() Map getChainModel() String getControllername() String getControllerUri() Errors getErrors() FlashScope getFlash() GrailsApplication getGrailsApplication() GrailsApplicationAttributes getGrailsAttributes() ModelAndVIEw getModelAndVIEw() GrailsParameterMap getParams() httpServletRequest getRequest() httpServletResponse getResponse() ServletContext getServletContext() httpSession getSession() String getTemplateUri(String name) String getVIEwUri(String name) GrailsWebRequest getWebRequest() boolean hasErrors() voID header(String headername,Object headerValue) Object redirect(Map args) Object render(Object o) Object render(String txt) Object render(Map args) Object render(Closure c) Object render(Map args,Closure c) Object withForm(Closure callable)

另外,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]) }

可以从paramsmap中拿到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约定。

所有的URI规则约定配置在urlmappings.groovy中,默认使用RESTfull风格。

Service约定。

所有的Service类约定入在grails-app/services文件夹中,名称要求以Service结尾。所有的Service的方法默认是加事务的。默认情况,所有的service都将注册为Spring的一个bean,并且是singletons的。可以在service加入属性static scope = 'session'就可以更改其范围。bean的名称就是该Service类名第一个字母小写。

Domain约定。

所有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中的约定所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存