这里以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. 将 Shiro 作为应用的权限基础

    Shiro 是 Java 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势.本文介绍了 Shiro 的 ...

  2. 升级Dell的R810固件版本

    1.到下面链接去下载win32版本的EXE固件 http://www.dell.com/support/home/cn/zh/cndhs1/Drivers/DriversDetails?driverI ...

  3. mysql-bin引起mysql不能启动

    日志提示无法找到mysql-bin.000005这个文件 原因是我把其删除了,而在mysql-bin.index文件中却还有mysql-bin.000005的记录,因此启动失败了 解决: cd /va ...

  4. oracle 导库建立测试库

    由于客户要定制的关系,需要对产品的数据进行相关的修改,所以需要复制原来的库出来,然后在此基础上再进行修改.步骤如下: 在PL/SQL下操作: /*分为四步 *//*第1步:创建临时表空间  */cre ...

  5. android 学习第一天 了解事件机制,页面跳转等常用操作

    点击时间2种 第一种,通过初始化页面 写入点击事件 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI ...

  6. 禁用Windows窗体的关闭按钮

    1. protected override void OnFormClosing(FormClosingEventArgs e) { e.Cancel = true; base.OnFormClosi ...

  7. 动画--android图片点击放大动画,并遮挡旁边的控件

    http://blog.csdn.net/s13488941815/article/details/40649823: 首先是点击放大可以使用android自带的缩放动画,因为要遮盖其他控件,就需要控 ...

  8. PLSQL Developer图形化窗口创建数据库全过程

    1.用系统管理员登陆,我这里用户名是system,密码是manager2.首先建立表空间(tablespaces),点击file->new->sql window   create tab ...

  9. windows平台CodeBlocks MinGW C++11开发环境搭建

    前言: 本文是以单独下载codeblock编辑器跟MinGW编译器这种方式进行安装,下载带MinGW编译器的codeblocks版本安装配置方式跟这个类似. 一: 下载并安装MinGW 这个参考我写的 ...

  10. 关于PetaPoco的T4模板使用

    PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM.PetaPoco介绍:http://www.cnblogs.com/youring2/archive/2012/06/ ...