初尝 JFinal 项目(二)
这里以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 项目(二)的更多相关文章
- 初尝 JFinal 项目(一)
temp1: JFinal项目与JAVA项目类似,有属性方法.操作方法.Sql语句操作.jdbc.配置文件 对比:|| JAVA: Bean / Srv(Server) / SqlMap / jdbc ...
- .NET领域驱动设计—初尝(三:穿过迷雾走向光明)
开篇介绍 在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要: 纵观软件开发方法论,从瀑布模型.螺旋模型.RUP(统一软件开发过程).XP(极限编程).Agile(敏捷 ...
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- 初尝Windows 下批处理编程
本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...
- seajs初尝 加载jquery返回null解决学习日志含示例下载
原文地址:http://www.tuicool.com/articles/bmuaEb 如需demo示例,请点击下方链接下载: http://yunpan.cn/cVEybKs8nV7CF 提取码 ...
- linux 环境下tomcat中部署jfinal项目
tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...
- .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
.NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- Github原生CI/CD,初尝Github Actions
Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...
- 初尝 Perl
本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...
随机推荐
- JS 深度拷贝 Object Array
JS 深度拷贝 Object Array function cloneObj(o) { var isArray = o instanceof Array; var isObject = o insta ...
- MySQL的基本操作
1. 查看数据库 语法 #show databases; 2. 添加数据库 语法: #create database demo; 3. 删除数据库 语法: #drop database demo; 4 ...
- undefined reference to `_init'问题解决
今天利用CDT 的eclipse调试程序,遇到下面的问题: d:/plugin/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi ...
- IOS WebView修改contentInset 导致webview长按弹出菜单跳动的解决方法
最近在项目中需要用到webview 加载H5 并且在webview 底部使用原生UI添加其他空间比如广告.或者评论(Scrollview) 最初使用修改webview中scrollview 的cont ...
- 黄聪:GeckoWebBrowser多窗口独立cookie
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- js多文件上传
一.HTML 选择文件的时候可以选择多个文件,这个需要我们在input file 里面加入一个属性multiple="multiple" 这样就可以框选文件了 <!DOCTY ...
- win上搭建react-native android环境
http://www.jianshu.com/p/2fdc4655ddf8 http://www.lcode.org/ http://www.jianshu.com/p/ad29d97b0e9d 学习 ...
- 移动web开发,12个触摸及多点触摸事件常用Js插件
如今移动互联网已经占据了主流地位,越来越多的开发者开始从桌面转向移动平台.与桌面开发不同的是,在移动领域中,不同的操作系统.大量不同屏幕尺寸的移动设备.触摸手势操作等,这都给开发者带来了一定的难度和挑 ...
- 采用CAS原理构建单点登录
企业的信息化过程是一个循序渐进的过程,在企业各个业务网站逐步建设的过程中,根据各种业务信息水平的需要构建了相应的应用系统,由于这些应用系统一般是在不同的时期开发完成的,各应用系统由于功能侧重.设计方法 ...
- JS滑动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...