开发者社区> 问答> 正文

JFinal中的IMainRenderFactory具体怎么用?

最近看 JFinal源码,发现IMainRenderFactory这个java文件,这个接口具体怎么用呢?

展开
收起
小旋风柴进 2016-06-08 09:26:08 3368 0
1 条回答
写回答
取消 提交回答
  • 简单来说IMainRenderFactory是用来创建Controller.render(String)这个方法调用后的Render对象的。

    JFinal默认支持在调用Controller.render(String)方法后创建`FreeMarkerRender、JspRender、VelocityRender`这三类对象,具体创建哪一种对象需要调用contants.setViewType(ViewType)来指定,不指定时默认创建`FreeMarkerRender`对象。
    
     当以上三类Render不能满足开发者需求时,可借助于`IMainRenderFactory`来指定创建的Render对象,只需要在JFinalConfig中设置一下:`constants.setMainRenderFactory(IMainRenderFactory)。`
    
    这类需求是真实存在过的,例如,有个同事基于JFinal针对淘宝与酷迅做过一个机票查询的业务系统,淘宝与酷迅通过http向服务发送请求,服务响应Xml数据。通常的办法是自定义一个XmlRender,然后调用`Controller.render(new XmlRender(...))`就可以了。但这样做代码过于冗长,开发者希望调用 `Controller.render(...)`这个方法来实现Xml数据的响应,`IMainRenderFactory`就可以满足这类需求。
    
     当您需要响应的数据是需要自定义Render,并且需要经常使用这个自定义Render的jf,使用IMainRenderFactory可以让代码更干净,更省。`IMainRenderFactory`特别适合于响应特定类型数据的服务系统,如Json、Xml等 :)
    
    
    2019-07-17 19:31:08
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
Spring框架入门 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载