这里以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. kali ssh服务开启登录

    vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 2. 将PermitRootLog ...

  2. html中空格转义字符

    记录一下,空格的转义字符分为如下几种: 平时一般用的是  1.  &160#;不断行的空白(1个字符宽度) 2.  &8194#;半个空白(1个字符宽度) 3.  &8195# ...

  3. 无废话WCF

    1.什么是WCF 2.WCF应用的通信过程 3.WCF宿主 4.WCF配置文件 5.WCF通信模式 6.一个简单的DEMO

  4. Android基础之Activity四种启动模式

    这东西是最基础的,发现自己其实没有真正试过,好好研究研究 standard :默认, singleTop :大体上同standard,但是当该Activity实例已经在task栈顶,不再创建新的实例, ...

  5. Centos 7 在VBox下不能联网

    摘要: 在Virtual Box下选择了Bridge Adaptor模式,安装CENTOS 7,网络连接一直都没有问题,后来不知道什么缘故就突然不能联网,很是烦恼,查询了很多网络方面的配置信息,也做了 ...

  6. ImageJ 学习第一篇

    ImageJ是世界上最快的纯Java的图像处理程序.它可以过滤一个2048x2048的图像在0.1秒内(*).这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的Image ...

  7. 国内常用DNS地址介绍

    1.谷歌全球通用DNS地址: 首选DNS地址:8.8.8.8 备选DNS地址:8.8.4.4 2.国内知名的114 DNS地址 首选DNS地址:114.114.114.114 备选DNS地址:114. ...

  8. vi和vim 的常用操作

    到文件末尾: ESC + shift G : 到文件头: G + G: 整块模式 快捷键  [不使用鼠标,来选择块] v                   字符选择,会将光标经过的地方反白选择! V ...

  9. js判断是否是移动设备登陆网页

    var browser = {            versions: function () {                var u = navigator.userAgent, app = ...

  10. 在linux中配置安装telnet服务

    Telnet 是一种流行的用于通过 Internet 登录到远程计算机的协议.Telnet 服务器软件包为远程登录主机提供了支持.要通过 Telnet 协议与另一台主机通讯,您可以使用名称或 Inte ...