博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Play framework 2.0 -应用程序全局设置(转)
阅读量:5975 次
发布时间:2019-06-20

本文共 2015 字,大约阅读时间需要 6 分钟。

转载自: http://shenbai.iteye.com/blog/1517366

1.全局对象

在工程中定义全局对象可以允许你操作你的应用程序的全局设置。这个全局对象必须定义在根包下。

import play.*;  public class Global extends GlobalSettings {      ...  }

2. 应用程序启动和关闭的拦截

可以重写onStart和onStop操作,通知对应的应用程序命周期事件。

import play.*;public class Global extends GlobalSettings {      @Override      public void onStart(Application app) {        Logger.info("Application has started");      }              @Override      public void onStop(Application app) {        Logger.info("Application shutdown...");      }          }

3.提供一个应用程序错误页

当你的程序有异常发生时,onError操作会被调用。默认使用框架内部错误页,可以重写它:

import play.*;  import play.mvc.*;  import static play.mvc.Results.*;        public class Global extends GlobalSettings {                 @Override            public Result onError(Throwable t) {              return internalServerError(                views.html.errorPage(t)              );            }     }

4.处理action未找到

当框架找不到请求的action时,onActionNotFound操作会被调用:

import play.*;  import play.mvc.*;  import static play.mvc.Results.*;    public class Global extends GlobalSettings {          @Override        public Result onActionNotFound(String uri) {          return notFound(            views.html.pageNotFound(uri)          );        }     }

如果路由能找到,但是不能绑定请求参数时,onBadRequest操作会被调用

import play.*;  import play.mvc.*;  import static play.mvc.Results.*;    public class Global extends GlobalSettings {          @Override        public Result onBadRequest(String uri, String error) {          return badRequest("Don't try to hack the URI!");        }     }

#拦截请求

1.重新onRequest

GlobalSettings类的一种重要概念是它提供了在请求被分发到action之前拦截请求,执行业务逻辑的方法。例如:

import play.*;  public class Global extends GlobalSettings {               @Override          public Action onRequest(Request request, Method actionMethod) {             System.out.println("before each request..." + request.toString());             return super.onRequest(request, actionMethod);          }  }
通过Action组件,也可以实现对指定Action方法的拦截。

转载于:https://www.cnblogs.com/JoannaQ/p/3637482.html

你可能感兴趣的文章
JSP页面获取系统时间
查看>>
L-1-19 Linux之RAID&分区&文件系统命令
查看>>
stat查找权限以数字形式显示
查看>>
源码编译安装httpd2.4.9
查看>>
linux系统优化
查看>>
在使用 Windows Update 检查更新时,系统没有提供下载 Windows 7 SP1 的选项
查看>>
在Struts + Spring + Hibernate的组合框架模式中,三者各自的特点都是什么
查看>>
Windows 2012 R2 DataCenter服务器DNS无法打开AD, DNS错误代码4000 4007 4013
查看>>
java基础数据类型char
查看>>
打印 PE导入导出表
查看>>
miniWindbg 功能
查看>>
五、判断银行卡号的正则
查看>>
mysql基于mysqlslap的压力测试
查看>>
zencart中query_factory.php中连接mysql次数
查看>>
fail2ban 保护linux安全(转载)已用于生产环境
查看>>
表格元素的添加和删除,计算器,全选全不反选
查看>>
数据约束
查看>>
网络营销第七课(1):制定SEO计划(网站相关数据分析)
查看>>
nginx rewrite 参数和例子
查看>>
mysqldump命令
查看>>