博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jfinal中的render
阅读量:4256 次
发布时间:2019-05-26

本文共 1524 字,大约阅读时间需要 5 分钟。

jfinal中的render就是渲染的意思。

可以将运行的结果,渲染为网页送给brower,也可以渲染一些静态内容。

1.渲染的视图类型

(1)类型

①根据路径

根据路径就是说它们的参数都是renderXXX(String view)

这个view指出,访问该文件的具体内容。

这种类型有:Freemarker、Jsp、Velocity、Xml

其中前三种是配置的一种渲染方法,可以用来渲染各种格式,然后用view指出路径来。

②根据内容

根据内容就是,填写的参数不是表示某个文件的路径,

而是直接填写具体的内容,而Json也可以是一个json对象等多种方式。而File一般用于文件下载。

Text、Json、File、Html、JavaScript

③直接render

直接render默认就是使用RenderFreemarker

可以通过在JFinalConfig.configConstant(Constants constants) 配 置 中 的 constants.setViewType(ViewType)来设定。

④自定义render

比如:render(new XXXXRender())

这里就是要自己定义一个XXXX类,来进行自定义的渲染。然后新建一个类的实例。

比如对于IE这种不支持Ajax的,就可以自定义一个类来实现特定的功能。

(2)配置

像三大渲染类型这种freemarker、jsp、velocity都需要再导入对应的jar包,包的版本在jfinal-all里面都有。

如果使用了其中一种又没有导入jar包的话,直接上图。

居然不是classNotFound,总之坑爹。

2.渲染路径

前面提到freemarker、jsp、velocity、xml都是通过路径,来指定某文件render给客户端。

这里的路径有两种

(1)绝对路径

/aaa/bbb/ccc.html

这个最开始的/表示的是,webroot或者webapp这个web的根路径。

上面的语句就表示,webapp文件夹下面的aaa/bbb/ccc.html文件。

(2)相对路径

①BaseViewPath

在configConstant里面配置。

②routePath

在configRoute里面配置。

③randerPath

在具体render的时候配置。

假如我的配置是

①me.setBaseViewPath("/WEB-INF/fcl");

②me.add("/", com.TestController.class, "test");

③render("content.html");

那么最终,我要呈现的文件地址为/WEB-INF/fcl/test/content.html

3.绕过jfinal直接由servlet container呈现

凡是采用controller里面的action render出来的都是使用了jfinal的。

如果要跳过jfinal,可以在地址栏中直接敲入静态页面的地址。

格式为host/aaa/bbb/ccc.html

表示,host为主机地址,然后与上面是一致的。这个时候会通过servlet container直接访问html文件

我这里的servlet container是jetty,而且我没有它的jsp扩展包,所以当访问jsp文件的时候,会是如图

解决办法有两种:

①加载jetty的jsp jar包。不过这里我也不知道具体哪个版本的合适。因为jfinal的这个jetty是特殊定制的。

②不要越过jfinal,不要在地址栏里直接访问静态文件,而是采用jfinal的render来渲染这个页面。

你可能感兴趣的文章
org.apache.hadoop.io.compress系列1-认识解码器/编码器
查看>>
pyspark-combineByKey详解
查看>>
从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社
查看>>
FM算法详解
查看>>
FM算法能够学习到原始特征的embedding表示
查看>>
Factorization Machines 学习笔记
查看>>
Spark入门实战系列--9.Spark GraphX介绍及实例
查看>>
倾情大奉送--Spark入门实战系列
查看>>
Navicat使用技巧(附快捷键)
查看>>
大数据在营销和销售中的十大应用
查看>>
python 的日志logging模块学习
查看>>
谷歌推Tacotron 2,搞定绕口令,效果优于WaveNet
查看>>
Spark 2.1.0 入门:特征抽取–Word2Vec(Python版)
查看>>
[NLP] MXnet与TensorFlow的自然语言处理应用
查看>>
#####@@@#好好好好#####最全知识图谱介绍:关键技术、开放数据集、应用案例汇总
查看>>
MxNet使用总览
查看>>
DL4NLP —— seq2seq+attention机制的应用:文档自动摘要(Automatic Text Summarization)
查看>>
QA问答系统中的深度学习技术实现
查看>>
NLP专题论文解读:从Chatbot、NER到QA系统...
查看>>
端到端的TTS深度学习模型tacotron(中文语音合成)
查看>>