JFinal
2016-02-18 14:35:16 16 举报
AI智能生成
jfinal
作者其他创作
大纲/内容
jfinal
JFinalConfig
对整个 web项目进行配置
constant
常量
devMode
viewType
JSP
FreeMarker
Velocity
route
路由
默认index()
请求路径:YourController.method()
URL:controllerKey/method/urlPara0-urlPara1-...-urlParaN
参数分隔符:"-"(默认)
设置分隔符:constants. setUrlParaSeparator(String)
获取:Controller 中 getPara(intindex)
controller中进行ActionKey注解
@ActionKey("/login")
plugin
插件架构
C3p0 数据库连接池
ActiveRecord数据库访问插件
interceptor
全局拦截器
拦截action请求
@Clear 在 Controller 中清除
Global、Class、Method
handler
处理器
接管 web 请求
对应用拥有完全的控制权
afterJFinalStart() 与 beforeJFinalStop()
在项目启动后与关闭前让开发者有机会进行额外操作,如在系统启动后创建调度线程或在系统关闭前写回缓存。
PropKit 工具类
主配置:PropKit.use("MainConfig.txt"); PorpKit.get(…);
非第一个被加载的配置文件:PropKit.use(…).get(…)
范例
package
Config
配置
configRoute(...)
合并路由
Routes
前台路由
前台控制器
后台路由
后台控制器
controller
控制器
帖子
主页
用户
管理员
AOP
面向切面编程
Interceptor
void intercept(Invocation inv)
Invocation
public void intercept(Invocation inv) {System.out.println("Before method invoking");inv.invoke();System.out.println("After method invoking");}
void invoke()
传递本次调用, 调用剩下的拦截器与目标方法
Controller getController()
获取Controller 对象( 仅用于控制层拦截)
String getActionKey()
获取 action key 值( 仅用于控制层拦截)
String getControllerKey()
获取ControllerKey的值( 仅用于控制层拦截)
String getViewPath()
视图路径( 仅用于控制层拦截)
<T> T getTarget()
获取被拦截方法所属的对象
Method getMethod()
获取被拦截方法的 Method 对象
String getMethodName()
获取被拦截方法的方法名
Object[] getArgs()
获取被拦截方法的所有参数值
Object getArg(int)
获取被拦截方法指定序号的参数值
<T> T getReturnValue()
获取被拦截方法的返回值
void setArg(int)
设置被拦截方法指定序号的参数值
void setReturnValue(Object)
设置被拦截方法的返回值
Boolean isActionInvocation()
判断是否为 Action 调用,也即是否为控制层拦截
对方法进行拦截,提供方法的前后添加切面代码
拦截器
控制层全局拦截器
拦截控制层所有 Action 方法
业务层全局拦截器
拦截业务层所有方法
Inject拦截器
Before注解
class级别
拦截本类中所有方法
method级别
拦截本方法
同时配置多个拦截器,只需用在大括号内用逗号将多个拦截器进行分隔即可
Clear
清除自身以上层的所有拦截器
携带参数时清除目标层中指定的拦截器
拦截器执行次序
同级别
配置在前的先执行。
不同级
Global、Inject、 Class、 Method
action
controller及public 无参方法
getPara(...)
从请求中获取参数
getPara(”title”)
页面表单域名为“ title” 参数值
getParaToInt(”age”)
页面表单域名为“ age”的参数值并转为 int 型
getPara(0)
url 请求中的 urlPara 参数的第一个值
http://localhost/controllerKey/method/v0-v1-v2 返回”v0”
getParaToInt(1)
返回 url 请求中的 urlPara 参数的第二个值并转换成int 型
约定 N,n 可以表示负号
getPara()
返回 url 请求中的 urlPara 参数的整体值
getModel(...)
接收页面表单域传递过来的 model 对象
modelName.attrName
<input name="blog.title" type="text">
<input name="帖子.title" type="text">
setAttr(...)
将数据传至 View显示
getFile(...)
文件上传
如果客户端请求为 multipartrequest( form 表单使用了 enctype="multipart/form-data")
那么必须先调用 getFile 系列方法才能使 getPara 系列方法正常工
JFinalConfig.configConstant(Constants me)方法中通过 me.setBaseUploadPath(baseUploadPath)设置文件上传基础路径
可将基础路径指向项目根径之外
renderFile(...)
文件下载
JFinalConfig.configConstant(Constants me) 方 法 中 通 过me.setBaseDownloadPath(baseDownloadPath) 设置文件下载基础路径
session操作
getSessionAttr(key)
getSession()
reder(...)
视图渲染
渲染方法
Controller.render(String)
渲染不同类型的视图并返回给客户端
渲染名为 test.html 的视图,该视图的全路径为”/path/test.html”
视图类型由渲染配置决定
FreeMarker、 JSP、 Velocity、 JSON、 File、 Text、 Html
renderFreeMarker(”test.html”)
视 图 类 型 为FreeMarker
renderJsp(”test.html”)
视图类型为 Jsp
renderVelocity(“test.html”)
视图类型为 Velocity
renderJson()
仅将 userList 中的数据转换成 json数据并渲染
renderJson(user)
将 user 对象转换成 json 数据并渲染
renderJson(“{\\”age\\”:18}” )
渲染 json 字符串
renderFile("test.zip")
渲染名为 test.zip 的文件,一般用于文件下载
renderText(“Hello JFinal”)
渲染纯文本内容”Hello JFinal”
renderHtml(“Hello Html”)
渲染 Html 内容”Hello Html”
渲染名为 test.html 的文件, 且状态为 404
渲染名为 test.html 的文件, 且状态为 500
renderNull()
不渲染,即不向客户端返回数据。
render(new XmlRender())
使用自定义的 XmlRender 来渲染
渲染配置
JFinalConfig.configConstant(Constants constants)
constants.setViewType(ViewType)
类型
FreeMarker(默认)、 JSP、 Velocity
拓展视图
constants.setMainRenderFactory(IMainRenderFactory)
注意
IE
不支持 contentType 为 application/json
ajax 上传文件完成后返回 json 时 IE 提示下载文件
render(new JsonRender().forIE())
render(newJsonRender(params).forIE())
返回
一个 action 中多次调用 render 方法只有最后一次有效
0 条评论
回复 删除
下一页