14.5 RenderFactory

JFinal 3.0 对 render 模块做了全面重构,抽取出了IRenderFactory接口,而原来的RenderFactory成为了接口的默认实现类,去除了原来的IMainRenderFactory、IErrorRenderFactory、IXmlRenderFactory三个接口,所有对 render 的扩展与定制全部都可以通过继承RenderFactory来实现,3.0版本的render模块可对所有render进行切换与定制,并且扩展方式完全一致。如果老项目对IMainRenderFactory做过扩展,只需要照如下方式进行升级:

  1. public class MyRenderFactory extends RenderFactory {
  2.   public Render getRender(String view) {
  3.      return new MyRender(view);
  4.   }
  5. }

同理,如果以前对 IErrorRenderFactory 或者 IXmlRenderFactory 做过扩展的,只需要在上面的MyRenderFactory类中添加上getErrorRender(…) 与 getXmlRender(…) 方法即可。扩展完以后在configConstant 中进行如下配置:

  1. public void configConstant(Constants me) {
  2.   me.setRenderFactory(new MyRenderFactory());
  3. }

JFinal 3.0 对所有render扩展,采取了完全一致的扩展方式,学习成本更低,使用更方便,升级也很方便。此外,原来RenderFactory类中的me() 已经被取消,老项目对此有依赖的只需要将RenderFactory.me() 直接改为RenderManager.me().getRenderFactory() 即可。