一些自动注入到控制器中的方法,参考 ControllersApi。 其中多数方法需要 BroFramework 甚至 BroBPM 的支持。
| Type | Name and description |
|---|---|
void |
bootStrapInit() |
List |
deleteFailedAttachments(Object controller, Object bean)当bean保存失败时,删除已保存的附件 |
Boolean |
isAjax(Object controller)判断是否是ajax请求,如果参数中有jsonp,则也任务是ajax请求 |
void |
nocache(Object controller)设置response头,不允许浏览器缓存 |
void |
paginateParams(Object controller, Integer defaultMax = null)处理params中的翻页参数,以免异常 |
void |
renderAjaxError(Object controller, Object bean, String jsonp)根据Bean的errors属性,渲染AJAX错误消息 |
void |
renderAjaxMessage(Object controller, Map message, String jsonp)渲染AJAX消息 |
void |
renderAjaxMessage(Object controller, String message, String jsonp)渲染AJAX消息 |
void |
renderDenied(Object controller, Object message = null)渲染拒绝访问界面 |
void |
renderError(Object controller, Object message)渲染错误界面 |
void |
renderExport(Object controller, Map modelAndView)渲染导出页面 |
void |
renderMessage(Object controller, Object message)渲染提醒界面 |
void |
renderText(Object controller, Object message)渲染纯文本消息 |
void |
renderWarning(Object controller, Object message)渲染警告界面 |
Boolean |
saveReferences(Object controller, Object bean)保存/更新提交的关联对象(xxx.xxx)的数据。 |
List |
updateAttachments(Object controller, Object bean)保存请求中的附件,并返回附件对象列表 |
Object |
withInstance(Object controller, Closure c)简化控制器里的操作代码,将最常用的判断放到本方法中。 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long), Object#wait(long, int), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
当bean保存失败时,删除已保存的附件
判断是否是ajax请求,如果参数中有jsonp,则也任务是ajax请求
设置response头,不允许浏览器缓存
处理params中的翻页参数,以免异常
根据Bean的errors属性,渲染AJAX错误消息
渲染AJAX消息
message - 包含消息的Map,将转成JSON。如 [message:"XXXX", ...]渲染AJAX消息
message - 已格式化成JSON的消息渲染拒绝访问界面
渲染错误界面
渲染导出页面
可以通过设置 params._export_format 设置导出格式;通过设置 params._export_filenmae 设置导出文件名。
modelAndView - 包含view、model属性的Map(同控制器中render的参数)。 其中view参数会根据导出格式,自动加上扩展名,如 export.doc(对应到export.doc.gsp文件)。 默认格式为doc,即默认会重定向到 export.doc.gsp;如果对应的gsp文件不存在,则会出404错误。
渲染提醒界面
渲染纯文本消息
渲染警告界面
保存/更新提交的关联对象(xxx.xxx)的数据。
如:Domain类 A 关联Domain类 B,且没有任何belong的关系,表单A上包含 B.name,提交时如果 B 实例还不存在,保存时可能会导致异常:
“object references an unsaved transient instance - save the transient instance before flushing B”
一般在控制器的save、update操作的 bean.save 前调用。
controller - 控制器bean - Domain实体Bean保存请求中的附件,并返回附件对象列表
简化控制器里的操作代码,将最常用的判断放到本方法中。
注:控制器中必须定义 scaffold、c1、c2。
通过控制器模板,在 show、edit、save、update、delete 等操作中调用。
c - 如果需要启用事务支持,则应为有两个参数的回调闭包,第一个参数为根据params.id拿到的bean,第2个参数为withTransaction后的status参数。 save、update、delete操作必须启用事务,因此此时回调闭包必须为两个参数,如果参数数量不正确,会抛出 No signature of method 的异常。 简单的说,如果是save、update、delete操作,或者是别的希望启用事务支持的操作,则传个带两个参数的回调闭包进来;否则传一个参数的回调闭包。