文档章节

JFinal教程JfinalUIB 代码笔记 (2)--- jfinal中视图耗时计算

littleant
 littleant
发布于 2014/06/11 17:23
字数 266
阅读 2325
收藏 4

 重写Render和RenderFactory类,这里是Beetl的实现方式,如果是JSP,也是同样的方式继承JspRender和JspRenderFactory即可

/**
 * 继承BeetlRender,实现视图耗时的计算
 * @author 董华健
 */
public class MyBeetlRender extends BeetlRender {
 private static final long serialVersionUID = 508975754500775679L;
 private static Logger log = Logger.getLogger(MyBeetlRender.class);
 
 public static final String renderTimeKey = "renderTime";
 
 public MyBeetlRender(GroupTemplate gt, String view) {
  super(gt, view);
 }
 public void render() {
  log.debug("MyBeetlRender render start");
  long start = System.currentTimeMillis();
  super.render();
  long end = System.currentTimeMillis();
  long renderTime = end - start;
  request.setAttribute(MyBeetlRender.renderTimeKey, renderTime);
  log.debug("MyBeetlRender render end");
 }
}
/**
 * 继承BeetlRenderFactory,调用MyBeetlRender,实现视图耗时计算
 * @author 董华健
 */
public class MyBeetlRenderFactory extends BeetlRenderFactory {
 
 private static Logger log = Logger.getLogger(MyBeetlRenderFactory.class);
 public Render getRender(String view) {
  log.debug("MyBeetlRenderFactory start");
  BeetlRender render = new MyBeetlRender(groupTemplate, view);
  log.debug("MyBeetlRenderFactory end");
  return render;
 }
 public String getViewExtension() {
  return ".html";
 }
}

 在JFinalConfig中配置,在configConstant方法中加入

 me.setMainRenderFactory(new MyBeetlRenderFactory());

获取视图耗时,这个代码应该在

Interceptor的ai.invoke();之后

或者 

Handler中的nextHandler.handle(target, request, response, isHandled);之后

// 视图耗时
  long renderTime = 0;
  if(null != request.getAttribute(MyBeetlRender.renderTimeKey)){
   renderTime = (long) request.getAttribute(MyBeetlRender.renderTimeKey);
  }

© 著作权归作者所有

共有 人打赏支持
littleant

littleant

粉丝 275
博文 13
码字总数 10514
作品 1
武汉
高级程序员
私信 提问
加载中

评论(2)

littleant
littleant

引用来自“zonghua”的评论

private static Logger log = Logger.getLogger(MyBeetlRender.class);
logger一般都要这样子用吗?不能在父类调用?
恩,每个类log对象都是独立的,在做日志按包过滤的时候跟这个应该是有关联的
啦啦啦拉拉
啦啦啦拉拉
private static Logger log = Logger.getLogger(MyBeetlRender.class);
logger一般都要这样子用吗?不能在父类调用?
基于JFinal实现的权限管理系统 JFinalUIB

项目用到了众多的开源组件,还有一些是网络分享的学习示例代码片段,感谢他们!!! JFinal高级学习交流QQ群:309647612 代码库地址:http://git.oschina.net/dongcb678/JfinalUIB.git 项目背景...

littleant
2014/06/03
0
35
JFina教程JfinalUIB 代码笔记 (3)--- jfinal Controller参数封装

通常我们使用jfinal开发都会写自己的BaseController来做一些公共全局变量的声明,或者用来实现一些公共方法,JfinalUIB也不例外。 参数的封装主要是在ParamPkgInterceptor类中实现,采用的是...

littleant
2014/06/12
0
5
最近在做的一件事件编写JFinal教程《Jfinal极速开发实战》

从8月1号开始,整整一个月,初稿完成,朋友帮我第一次文字校对完成,现在正在根据波总的意见修改一些jfinal的设计原则说明 Jfinal、JfinalUIB学习交流QQ群:309647612 已经完成,前四章免费阅...

littleant
2015/08/20
0
12
jweb——修改自jfinaluib的java管理系统开发基础框架

项目地址: https://git.oschina.net/xjtweb/jweb.git 几点说明: 一、本工程修改自jfinaluib项目。 二、运行 a、设置jvm参数jweb.home指向工程的工作目录(目录内容参照本文件的同级目录的hom...

xiejuntao
2015/05/22
0
0
JFinal2.1中全局拦截器中配置多个事务规则时报错

@JFinal 你好,想跟你请教个问题: JFinal2.1中在Config中加入事务拦截时,从第三个事务规则开始报错,不能定义多个规则吗? 2.0好像没有报错。@JFinalUIB中就是这样配置的。 /** * 配置全局...

hypocrite11
2016/01/06
855
5

没有更多内容

加载失败,请刷新页面

加载更多

linux使用docker-compose部署软件配置

本篇将分享一些 docker-compose 的配置,可参考其总结自己的一套基于docker的开发/生产环境配置。下面话不多说了,来一起看看详细的介绍吧 安装docker及docker-compose install docker curl ...

开元中国2015
13分钟前
0
0
GraphQL 基金会成立了:将托管于Linux 基金会管理

GraphQL 基金会在11月7日宣布成立,并将由 Linux 基金会管理。GraphQL 基金会将专用于完善和稳定 GraphQL 生态系统,让 GraphQL 得到广泛关注和采用。GraphQL 是 Facebook 开发的一个应用层数...

Linux就该这么学
23分钟前
5
0
Java开发中内存模型详细解析

Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到。但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着。网上已经有大量的博客,但是人家...

金铭鼎IT教育
27分钟前
3
0
render常用模版 结合iview

表格添加一对按钮 { title: '操作', align: 'center', render: (h, params) => { return h('div', [ h('Button', { props: { ......

Carbenson
43分钟前
1
0
一次生产 CPU 100% 排查优化实践

前言 到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。 还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不...

crossoverJie
50分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部