JFinal源码解析--render
2014-05-19 00:00
344 查看
1. JFinal类
private void initRender() { RenderFactory renderFactory = RenderFactory.me();//工厂设计模式、单例 renderFactory.init(constants, servletContext); }2.RenderFactory类设置编码格式、开发者模式、Render工厂(支持JSP、FreeMarker、Velocity三种视图模式)采用了工厂设计模式、单例设计模式,工厂模式方便我们在controller中,使用renderXxx 方法将text json object等类型,包装成Render对象,以单例模式保存着这个Render对象,同时在初始化后保存着我们选用的视图模式IMainRenderFactory,以及servletContext
public void init(Constants constants, ServletContext servletContext) { this.constants = constants;//我们的配置 RenderFactory.servletContext = servletContext; // init Render Render.init(constants.getEncoding(), constants.getDevMode());//设置编码格式和开发者模式 initFreeMarkerRender(servletContext); initVelocityRender(servletContext); initFileRender(servletContext); // create mainRenderFactory if (mainRenderFactory == null) { ViewType defaultViewType = constants.getViewType();//根据我们的配置选择所需用用到的Render工厂 if (defaultViewType == ViewType.FREE_MARKER) mainRenderFactory = new FreeMarkerRenderFactory(); else if (defaultViewType == ViewType.JSP) mainRenderFactory = new JspRenderFactory(); else if (defaultViewType == ViewType.VELOCITY) mainRenderFactory = new VelocityRenderFactory(); else throw new RuntimeException("View Type can not be null."); } // create errorRenderFactory if (errorRenderFactory == null) { errorRenderFactory = new ErrorRenderFactory(); } }
相关文章推荐
- JFinal 源码超详细解析之DB+ActiveRecord
- JFinal源码解析--从请求到处理返回流程
- 源码有毒:Jfinal源码解析(四)
- Android Render(四)supportVersion 27.0.0源码RecyclerView绘制流程解析
- jfinal源码解析
- JFinal源码分析------初始化那些事儿2之Render
- 源码有毒:Jfinal源码解析(二)
- 源码有毒:Jfinal源码解析(一)
- JFinal 源码超详细解析之DB+ActiveRecord
- JFinal 源码超详细解析之DB+ActiveRecord
- JFinal源码解析系列之三
- JFinal 源码解析系列二
- 源码有毒:Jfinal源码解析(三)
- JFinal源码解析二:AOP的实现
- JFinal 源码解析--Handler
- JFinal 源码超详细解析之DB+ActiveRecord
- JFinal源码解析--ActionMapping,Interceptor
- 源码有毒:Jfinal源码解析(六)
- jFinal路由解析源码分析
- JFinal Handler源码解析——从配置到工作原理