zoukankan      html  css  js  c++  java
  • Play framework 2.0 -应用程序全局设置(转)

    转载自: 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方法的拦截。
  • 相关阅读:
    求职简历撰写要点和模板分享
    find命令
    MD5Init-MD5Update-MD5Final
    Linux find命令详解
    Linux进程KILL不掉的原因
    Linux操作系统的内存使用方法详细解析
    Lsof命令详解
    为什么ps中CPU占用率会有超出%100的现象?
    第12课 经典问题解析一
    第11课 新型的类型转换
  • 原文地址:https://www.cnblogs.com/JoannaQ/p/3637482.html
Copyright © 2011-2022 走看看