这里以Roles角色表修改功能做一个例子

RolesController

/**
 * 角色管理控制类
 * @author 御手洗红豆
 */
public class RolesController extends Controller {
    
    /**
     * 货品管理初始页面方法,查询第一页数据
     * @author 御手洗红豆
     */
    public void index() {
        // 转入客户grid管理页面
        render("/businessPage/rolesPage/gridPage.html");
    }
    
    /**
     * 获取货品信息列表的json,带分页信息,转入gridPage
     * @author 御手洗红豆
     */
    public void getdatetojson() {
        // 获得jqGrid传入参数
        JqGridBaseBean searchBean = getBean(JqGridBaseBean.class, "", true);
        // 总记录获得语句
        String countSql = "select count(*) totalRow from roles where isdel=0 ";
        // 编辑查询语句
        String sqlstr = "select * from roles where isdel=0 ";
        // 判断是否有检索条件,如果没有,前台不传检索参数,获取会报错。
        if(searchBean.is_search()){
            // 网上说有单字段查询的时候,但是在ACE框架给的页面中没发现有,暂时保留这种写法
            if(searchBean.getJqGridSearch().getSearchField() != null && searchBean.getJqGridSearch().getSearchOper() != null){
                // 单字段查询的时候
                countSql +=" and (" + JqGridOpSwitch.opSwitchMySql(searchBean.getJqGridSearch().getSearchField(), searchBean.getJqGridSearch().getSearchOper(), searchBean.getJqGridSearch().getSearchString(), 2)+")";
                sqlstr +=" and (" + JqGridOpSwitch.opSwitchMySql(searchBean.getJqGridSearch().getSearchField(), searchBean.getJqGridSearch().getSearchOper(), searchBean.getJqGridSearch().getSearchString(), 2)+")";
            }else if(searchBean.getJqGridSearch().getGroupOp() != null && searchBean.getJqGridSearch().getRules()!= null && searchBean.getJqGridSearch().getRules().size() != 0){
                // 多字段查询的时候
                countSql +=" and (";
                sqlstr +=" and (";
                for(int i = 0; i < searchBean.getJqGridSearch().getRulesList().size(); i++){
                    if(i > 0){
                        countSql += searchBean.getJqGridSearch().getGroupOp();
                        sqlstr += searchBean.getJqGridSearch().getGroupOp();
                    }
                    JqGridSearchDetailBean tempBean = searchBean.getJqGridSearch().getRulesList().get(i);
                    countSql += JqGridOpSwitch.opSwitchMySql(tempBean.getField(),tempBean.getOp(),tempBean.getData(),2);
                    sqlstr += JqGridOpSwitch.opSwitchMySql(tempBean.getField(),tempBean.getOp(),tempBean.getData(),2);
                }
                countSql +=") ";
                sqlstr +=") ";
            }
        }
        
        sqlstr += " limit " + ((searchBean.getPage()-1) * searchBean.getRows()) + "," + searchBean.getRows();    
        
        // 取得总记录数
        long totalRow = RolesModel.dao.findFirst(countSql).getLong("totalRow");
        // 计算总页数,不能整除的进1
        int totalPage = BigDecimal.valueOf(totalRow).divide(BigDecimal.valueOf(searchBean.getRows()), BigDecimal.ROUND_UP).intValue();
        
        // 取得查询内容
        List<RolesModel> roleslist = RolesModel.dao.find(sqlstr);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("page", searchBean.getPage());
        map.put("totalPage", totalPage);
        map.put("totalRecords", totalRow);
        map.put("list", roleslist);
        renderJson(map);
    }
    
    /**
     * jqGrid的数据操作
     * @author 御手洗红豆
     */
    public void editfromgrid(){
        // 获得操作类别
        String oper = getPara("oper");
        // 获得操作对象
        RolesModel roles = getModel(RolesModel.class,"",true);
        if(oper.equals("add")){
            // 添加
            roles.save();
        }else if(oper.equals("edit")){
            // 修改
            roles.update();
        }else if(oper.equals("del")){
            // 删除
            roles.set("isdel", 1);
            roles.update();
        }
        renderText("succeed");
    }
    /**
     * 获取用于下拉列表填充的数据
     * @author 御手洗红豆
     */
    public void getalldatetotext() {
        // 编辑查询语句
        String sqlstr = "select * from roles where isdel=0";
        // 取得查询内容
        List<RolesModel> roleslist = RolesModel.dao.find(sqlstr);
        String str = "";
        for(int i = 0; i < roleslist.size(); i++){
            RolesModel tempModel = roleslist.get(i);
            if(i>0){
                str += ";";
            }
            str += tempModel.get("id").toString() + ": " + tempModel.getStr("name");
        }
        renderText(str);
    }
}

初尝 JFinal 项目(二)的更多相关文章

  1. 初尝 JFinal 项目(一)

    temp1: JFinal项目与JAVA项目类似,有属性方法.操作方法.Sql语句操作.jdbc.配置文件 对比:|| JAVA: Bean / Srv(Server) / SqlMap / jdbc ...

  2. .NET领域驱动设计—初尝(三:穿过迷雾走向光明)

    开篇介绍 在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要: 纵观软件开发方法论,从瀑布模型.螺旋模型.RUP(统一软件开发过程).XP(极限编程).Agile(敏捷 ...

  3. JFinal 项目 在tomcat下部署

    原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...

  4. 初尝Windows 下批处理编程

    本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...

  5. seajs初尝 加载jquery返回null解决学习日志含示例下载

    原文地址:http://www.tuicool.com/articles/bmuaEb 如需demo示例,请点击下方链接下载: http://yunpan.cn/cVEybKs8nV7CF  提取码 ...

  6. linux 环境下tomcat中部署jfinal项目

    tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...

  7. .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)

     .NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  8. Github原生CI/CD,初尝Github Actions

    Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...

  9. 初尝 Perl

    本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...

随机推荐

  1. C 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)

    最熟悉的陌生人 作者:张慧桥 “枪与玫瑰” 我送走了“蝶恋花”,犹有一种身在梦中的感觉,昨晚的宿醉让我只觉得头晕乎乎的很不舒服,想想自己连澡都还没洗呢,便去洗了个冷水澡. 煮了杯浓浓的咖啡喝了下去,我 ...

  2. 手机网页调试利器: Chrome

    新开发的网页需要在手机或是模拟机上运行测试, 可以借助 Chrome提供的手机网页预览程序进行简单调试.查看 制作的网页是否能够适合各种手机型号使用. 下面所以下如何使用Chrome调试多类型手机网页 ...

  3. Bootstrap,Font Awesome等组件中 .woff字体报404错的解决办法

    参考资料:http://www.zhidao91.com/glyphicons-halflings-regular-woff-404-not-found/ http://shiyousan.com/p ...

  4. Hibernate5.2关联关系之双向一对多(三)

                                                           Hibernate之双向一对多(三) 一.简介 本篇博文接着上一章的内容接着开展,代码也是 ...

  5. weave 建立跨节点docker网络

    weave的工作原理上与利用openvswitch建立vxlan基本一样,都是通过用三层的协议封装二层的报文来进行扩展,weave使用的是udp.weave封装了docker,在操作上为我们隐藏了很多 ...

  6. Nexus3.0.0+Maven的使用(三)

    这章主要讲怎么和Maven做集成,集成的方式主要分以下种情况:代理中央仓库.Snapshot包的管理.Release包的管理.第三方Jar上传到Nexus上 1  代理中央仓库 只要在PMO文件中配置 ...

  7. oracle数据库如何创建用户并授予角色

    目标:1.  创建角色test1_role,  授予 CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE T ...

  8. .NET DataSet、DataTable操作记录

    一直在习惯.net的编程思维,或是说C#吧.因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件.类的熟悉,不然很多功能都实现不了. 需求 最近做了一功能,从SQL Server ...

  9. (转)设计模式_Singleton单例模式

    静态初始化 public sealed class Singleton { private static readonly Singleton instance = new Singleton(); ...

  10. RabbitMQ小结

    1.帮助文档 rabbitmq官网:http://www.rabbitmq.com/ rabbitmq谷歌论坛:https://groups.google.com/forum/#!forum/rabb ...