Jfinal + easyui 整合
来源:互联网 发布:项目进展软件 编辑:程序博客网 时间:2024/06/06 08:24
第一次接触到jfianl,被这种没有xml配置的优点给迷住了(每次配置xml,头部的那些东西 老是记不住该怎么配置,总是需要参考,水平不过关啊,罪过罪过。。。。)
现将easyUI 整合一起,前台又花了 蛮多的时间,这里记录对jfinal框架的认识,以作参考:
1、easyUI Tree :(异步加载)
第一次接触到easyUI也是因为tree,那段时间要把项目中的 ztree 更改UI,使用easyUI tree,狠狠的看了一把easyUI API 文档,现在后端使用的是jfinal ,写法又产生了变化,
在异步加载树中,最明显的不同点就是不用自己去传值,类似于
$('#backendMenuTree').tree("options").url = "/menu/findSubMenuById?pId" + node.id ;
这样,现在简化成
$('#backendMenuTree').tree("options").url = "/menu/findSubMenuById";
在后端通过jfinal内置的方法 getPara,就可获取到对应的参数值,getPara 方法有很多扩展,类似于getParaToLong,getParaToString 等等,很方便我们取到对应的值。取到
父节点后,查询子节点,还是按照easyUI tree 要求的格式进行数据封装,最后将封装好的json数据通过renderJson(jsonArr)返回到页面。
render 用法有很多,我们可以根据需要使用不同的应用场景使用不同的方法来渲染页面。
---- getPara render 使用见官网API文档。
2、datagrid
写法上没有什么变化,jfinal 有内置的分页查询方法,如下,只需传递对应的参数即可。
Integer page = getParaToInt("page");Integer rows = getParaToInt("rows");Page<Blog> paginate = Blog.dao.paginate(page, rows);Map map = new HashMap();//按照easyui datagrid 数据封装格式进行二次封装map.put("rows", paginate.getList());map.put("total", paginate.getTotalRow());renderJson(map);
3 ajax请求
jfinal 没有具体的实体类对象,只有个抽象类,虽然传递的参数 在后端基本上都可以通过内置的方式getPara 获取,
但是如果涉及到类似于表单有多个参数参数,类似于
var param = {
"menu.ID":ID,
"menu.menu_name":menu_name,
"menu.is_visible":is_visible,
"menu.menu_type":menu_type,
"menu.menu_url":menu_url,
"menu.menu_code":menu_code
};
请求到后台解析,如果一个个参数去解析获取,就显得麻烦,这时候可以通过Menu menu = getModel(Menu.class,"menu")解析,即可获取当前对象menu相关的参数,如果含有多个对象的传参,可参考http://www.oschina.net/question/203191_63769,提供了一种解决方式
如果post请求进行的是数据库add、update操作,sql中对字符串类型的数据要增加+"\'" 进行转义,避免sql执行报错
缺点:因为没有具体的实例对象,在获取元素时就只能通过
Long id = menu.getLong("ID");
<span style="color:#ff6666;">ID </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">要与数据库字段保持一致</span>
4、文件上传(图片上传)
jFinal 里面 对文件上传的操作较之struts2 的上传更加的简单粗暴,struts2 对上传的文件采取的是文件先缓存到临时目录中,然后由开发者本人对临时文件进行处理
jFinal 是对上传的文件直接上传到指定的目录下
public void ImageUp() throws Exception{ //定义允许上传的文件扩展名 HashMap<String, String> extMap = new HashMap<String, String>(); extMap.put("image", "gif,jpg,jpeg,png,bmp"); String result = ""; String dirName = getPara("dir")==null?"image":getPara("dir"); String realpath = getRequest().getRealPath("/upload"); UploadFile uf= getFile("Filedata",realpath); String affix_id = ""; String affix_name = ""; if(uf!=null){ affix_name = uf.getFile().getName(); File file = uf.getFile(); //检查扩展名 String fileExt = affix_name.substring(affix_name.lastIndexOf(".") + 1).toLowerCase(); if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){ result = "上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"; file.delete(); }else{ SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); affix_id = df.format(new Date()) + "_" + new Random().nextInt(1000)+"."+fileExt; File savefile = new File(new File(realpath),affix_id); FileUtils.copyFile(file, savefile); if(file.exists()){ file.delete(); } result=JFinal.me().getContextPath()+"/upload/"+affix_id; } }else{ result="请选择文件"; } render(new JsonRender(JSON.toJSONString(result)).forIE()); }
主要方法:UploadFile uf= getFile(parameterName,saveDirectory),parameterName 如果不知道的话,可以直接用getFile() 方法
UploadFile uf= getFile();通过getFile() 就可以获取上传文件的相关内容(文件名、源文件的路径等),上传图片的动作通过copyFile 方式进行上传,如上代码所示:
FileUtils.copyFile(uf.getFile(), new File(dir));参数说明:uf.getFile() 源文件 new File(dir) 文件上传在哪里
5、拦截器和验证 知识看了API文档,没有具体的去实现
- Jfinal + easyui 整合
- jfinal easyui datagrid
- JFinal 整合Quartz
- Jfinal整合Beetl
- JFinal整合WebSocket开发
- maven +jfinal +bettl 整合
- Jfinal整合Webservice
- JFinal与websocket整合
- Jfinal整合shiro
- Jfinal整合EhCache
- Jfinal中Shiro整合
- jfinal spring 整合 集成 事物 spring-jfinal
- JFinal整合spring的websocket
- JFinal -spring整合的代码
- jfinal 整合shiro的使用
- 关于jfinal与spring整合的问题
- maven整合jfinal(轻量级框架)
- jfinal整合Hibernate-validator校验框架
- XMpp基础
- Single Page Application - 下一代的Web应用程序
- Tair源码分析_对照表创建流程
- [2678]5-1 继承与派生
- 63 在字符串中删除特定的字符
- Jfinal + easyui 整合
- Android搜索视媒体库视频 列表显示选择
- cocos2d中的设计模式
- 第七周项目三计算一名员工的周工资
- Linux指定动态库搜索路径
- Android--基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
- 4.4.2 绘制图形
- Cocos2d-x 3.3Bate0 ExpandedListView
- C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式