EasyUI前后端分离

陈旧的开发模式

美工(ui工程师:出一个项目模型)
java工程师:将原有的html转成jsp,动态展示数据
缺点:
客户需要调节前端的展示效果
解决:由美工去重新排版,重新选色。
Vs
前后端分离
美工、java工程师都是独立工作的,彼此之间在开发过程中是没有任何交际。
在开发前约定数据交互的格式。
java工程师的工作:写方法返回数据如tree_data1.json
美工:只管展示tree_data1.json

 

1、datagrid布局
2、dialog布局
3、form布局
4、通用的JsonBaseDao增删改方法
5、dao层
6、web层
7、功能完善

前端

userManage.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>人员信息维护界面</title>
 8 <link rel="stylesheet" type="text/css"
 9     href="${pageContext.request.contextPath }/static/js/public/easyui5/themes/default/easyui.css">
10 <link rel="stylesheet" type="text/css"
11     href="${pageContext.request.contextPath }/static/js/public/easyui5/themes/icon.css">
12 <script type="text/javascript"
13     src="${pageContext.request.contextPath }/static/js/public/easyui5/jquery.min.js"></script>
14 <script type="text/javascript"
15     src="${pageContext.request.contextPath }/static/js/public/easyui5/jquery.easyui.min.js"></script>
16 <script type="text/javascript"
17     src="${pageContext.request.contextPath }/static/js/userManage.js"></script>
18 </head>
19 <body>
20     <!--展示数据  -->
21     <table id="dg"></table>
22     <!--弹窗  -->
23     <div id="dd" class="easyui-dialog" title="编辑窗体"
24         style="width: 400px; height: 200px;"
25         data-options="iconCls:'icon-save',resizable:true,modal:true,closed:true,buttons:'#bb'">
26         <!-- 提交的from表单 -->
27         <form id="ff" method="post">
28             <input type="hidden" name="SerialNo">
29             <!-- 
30 easyui自带正则 :但是你想要正则规划在easyUI中不存在,easyUI中只是定义了一些常见的正则
31 可以在easyUI中自定义validType:'正则'
32 $.4xtends({validType:xxx
33 
34 })
35 -->
36             <div>
37                 <label for="uid">uid:</label> <input class="easyui-validatebox"
38                     type="text" name="uid" data-options="required:true" />
39             </div>
40             <div>
41                 <label for="uname">uname:</label> <input class="easyui-validatebox"
42                     type="text" name="uname" data-options="required:true" />
43             </div>
44             <div>
45                 <label for="upwd">upwd:</label> <input class="easyui-validatebox"
46                     type="text" name="upwd" data-options="required:true" />
47             </div>
48         </form>
49     </div>
50     <!--  <div id="tb">-->
51     <!-- <a href="#" class="easyui-linkbutton"-->
52     <!--     data-options="iconCls:'icon-edit',plain:true" /a> <a href="#"-->
53     <!--     class="easyui-linkbutton"-->
54     <!--     data-options="iconCls:'icon-help',plain:true" /a>-->
55     <!-- </div>>-->
56     </div>
57     <div id="bb">
58         <a href="#" class="easyui-linkbutton" onclick="ok()">保存</a> <a href="#"
59             class="easyui-linkbutton">关闭</a>
60     </div>
61 
62 
63     </div>
64 
65 
66 </body>
67 </html>

userManage.js

 1 $(function(){
 2     var xfq = $("#xfq").val();
 3     $('#dg').datagrid({    
 4         url:ctx+'/userAction.action?methodName=list', 
 5 //        行填充
 6         fit:true,
 7 //        列填充
 8         fitColumns:true,
 9         pagination:true,
10         singleSelect:true,
11         columns:[[    
12             {field:'uid',title:'ID',width:100},    
13             {field:'uname',title:'用户名',width:100},    
14             {field:'upwd',title:'密码',width:100,align:'right'}    
15         ]],
16         toolbar: [{
17             iconCls: 'icon-add',
18             handler: function(){
19                 $('#ff').form('clear');//清空文本框的值
20                 $('#dd').dialog('open');//打开表格
21                 $("#dd").attr("title","增加用户");//增加信息
22                 $("#method").val("add"); //通过隐藏ID来设置增加方法    
23             }
24         },'-',{
25             iconCls: 'icon-edit',
26             handler: function(){
27                 $('#dd').dialog('open');
28 //                到datagrid控件中找需要回填的数据(区别于原来从后台查询)
29                 var row = $('#dg').datagrid('getSelected');
30                 if(row){
31 //                get_data.php指的是回填的数据
32                     $('#ff').form('load',row);
33                     $('#method').val('edit');
34                 }else{
35                     alert("请选择你要修改的行");
36                 }
37             }
38         },'-',{
39             iconCls: 'icon-remove',
40             handler: function(){
41                 var row =$('#dg').datagrid('getSelected');
42                 if(row){
43                     $.ajax({  
44                         url:$("#ctx").val()+'/userAction.action?methodName=remove&&SerialNo='+row.SerialNo,  
45                     });   
46                     $('#dg').datagrid('reload');//刷新方法
47                     alert('删除成功');
48                 }
49                 else{
50                     alert('删除失败');
51                 }
52             }
53         },'-',{
54             iconCls: 'icon-reload',
55             handler: function(){alert('刷新按钮')}
56         }]
57 
58     }); 
59 
60 })
61 
62 function ok() {
63     alert('ok');
64     $('#ff').form('submit', {    
65 //        url:ctx+'/userAction.action?methodName=edit',
66         url:ctx+'/userAction.action?methodName='+$("#method").val(),
67         success:function(data){ 
68 //            针对于后端返回的结果进行处理
69             $('#ff').form('clear');
70             $('#dd').dialog('close');
71             $('#dg').datagrid('reload');
72         }    
73     });  
74 }

datagrid_data1.json

 1 {"total":28,"rows":[
 2     {"uid":"FI-SW-01","uname":"Koi","upwd":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
 3     {"uid":"K9-DL-01","uname":"Dalmation","upwd":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
 4     {"uid":"RP-SN-01","uname":"Rattlesnake","upwd":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
 5     {"uid":"RP-SN-01","uname":"Rattlesnake","upwd":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
 6     {"uid":"RP-LI-02","uname":"Iguana","upwd":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
 7     {"uid":"FL-DSH-01","uname":"Manx","upwd":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
 8     {"uid":"FL-DSH-01","uname":"Manx","upwd":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
 9     {"uid":"FL-DLH-02","uname":"Persian","upwd":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
10     {"uid":"FL-DLH-02","uname":"Persian","upwd":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
11     {"uid":"AV-CB-01","uname":"Amazon Parrot","upwd":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
12 ]}

UserDao 1 package com.easyui.dao; 2 3 import java.sql.SQLException;

 4 import java.util.List;
 5 import java.util.Map;
 6 
 7 import com.easyui.util.JsonBaseDao;
 8 import com.easyui.util.JsonUtils;
 9 import com.easyui.util.PageBean;
10 import com.easyui.util.StringUtils;
11 
12 public class UserDao extends JsonBaseDao{
13      /**
14         * 用户登录或者查询用户分页的公共方法
15         * @param paMap
16         * @param pageBean
17         * @return
18         * @throws InstantiationException
19         * @throws IllegalAccessException
20         * @throws SQLException
21         */
22         public List<Map<String, Object>> list(Map<String, String[]> paMap,PageBean pageBean ) throws InstantiationException, IllegalAccessException, SQLException{
23             String sql="select * from t_easyui_user_version2 where true";
24             String uid=JsonUtils.getParamVal(paMap, "uid");
25             String upwd=JsonUtils.getParamVal(paMap, "upwd");
26             if(StringUtils.isNotBlank(uid)) {
27                 sql+=" and uid="+uid;
28             }
29             if(StringUtils.isNotBlank(upwd)) {
30                 sql+=" and upwd="+upwd;
31             }
32             return super.executeQuery(sql, pageBean);
33         }
34         /**
35          * 修改
36          * @param paMap
37          * @return
38          * @throws NoSuchFieldException
39          * @throws SecurityException
40          * @throws IllegalArgumentException
41          * @throws IllegalAccessException
42          * @throws SQLException
43          */
44         public int edit(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
45             String sql = "update t_easyui_user_version2 set uid=?,uname=?,upwd=? where serialno=?";
46             return super.executeUpdate(sql, new String[] {"uid","uname","upwd","SerialNo"}, paMap);
47             
48         }
 1    public int add(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
 2                    String sql = "insert into t_easyui_user_version2 values(?,?,?)";
 3                    return super.executeUpdate(sql, new String[] {"uid","uname","upwd"}, paMap);
 4 
 5      }
 6 
 7 
 8                     public int remove(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
 9                 String sql = "delete from t_easyui_user_version2 where serialno=?";
10                        return super.executeUpdate(sql, new String[] {"SerialNo"}, paMap);
11 
12     }

 

49         /**
50          *新增
51          * @param paMap
52          * @return
53          * @throws NoSuchFieldException
54          * @throws SecurityException
55          * @throws IllegalArgumentException
56          * @throws IllegalAccessException
57          * @throws SQLException
58          */
59         public int add(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
60             String sql="insert into t_easyui_user_version2 values(?,?,?)";
61             return super.executeUpdate(sql, new String[] {"uid","uname","upwd"} , paMap);
62         }
63     /**
64      * 删除
65      * @param paMap
66      * @return
67      * @throws NoSuchFieldException
68      * @throws SecurityException
69      * @throws IllegalArgumentException
70      * @throws IllegalAccessException
71      * @throws SQLException
72      */
73         public int del(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
74             String sql="delete from t_easyui_user_version2 where SerialNo=?";
75             return super.executeUpdate(sql, new String[] {"SerialNo"} , paMap);
76         }
77     
78         /**
79          * 根据当前用户登录的id去查对应的菜单
80          * @param paMap
81          * @param pageBean
82          * @return
83          * @throws InstantiationException
84          * @throws IllegalAccessException
85          * @throws SQLException
86          */
87         public List<Map<String, Object>> getMenuByUid(Map<String, String[]> paMap,PageBean pageBean ) throws InstantiationException, IllegalAccessException, SQLException{
88             String sql="select * from t_easyui_usermenu where true";
89             String uid=JsonUtils.getParamVal(paMap, "uid");
90             if(StringUtils.isNotBlank(uid)) {
91                 sql+=" and uid="+uid;
92             }
93             
94             return super.executeQuery(sql, pageBean);
95         }
96     
97 }

UserAction

  1 package com.easyui.web;
  2 
  3 import java.util.HashMap;
  4 import java.util.List;
  5 import java.util.Map;
  6 
  7 import javax.servlet.http.HttpServletRequest;
  8 import javax.servlet.http.HttpServletResponse;
  9 
 10 import com.fasterxml.jackson.databind.ObjectMapper;
 11 import com.easyui.dao.UserDao;
 12 import com.easyui.entity.TreeNode;
 13 import com.easyui.util.PageBean;
 14 import com.easyui.util.ResponseUtil;
 15 import com.zking.framework.ActionSupport;
 16 
 17 public class UserAction extends ActionSupport{
 18 
 19     private UserDao userDao=new UserDao();
 20     /**
 21      * 登录成功后跳转index.jsp
 22      * @param request
 23      * @param response
 24      * @return
 25      * @throws Exception
 26      */
 27      public String login(HttpServletRequest request,HttpServletResponse response) throws Exception {
 28         //系统中是否有当前登录用户
 29          Map<String, Object> map=null;
 30          try {
 31               map= this.userDao.list(request.getParameterMap(), null).get(0);
 32             
 33         } catch (Exception e) {
 34              request.setAttribute("msg", "用户不存在");
 35              return "login";
 36         }
 37         
 38         // 39          //查询用户菜单中间表,获取对应menuid的集合
 40          if(map!=null && map.size()>0) {
 41              //[{Menuid:002,map...},{Menuid:003..}]
 42              //[002,003]
 43              StringBuilder sb=new StringBuilder();
 44             List<Map<String, Object>> menuIdArr = this.userDao.getMenuByUid(request.getParameterMap(), null);
 45           System.out.println(menuIdArr);
 46             for (Map<String, Object> m : menuIdArr) {
 47                 sb.append(","+m.get("menuId"));
 48                 //,002,003
 49             }
 50             request.setAttribute("menuIds", sb.substring(1));
 51             
 52             return "index";
 53          }else {
 54              System.out.println("进来了");
 55              //没有
 56              request.setAttribute("msg", "用户不存在");
 57              // 返回登录界面
 58              return "login";
 59          }
 60             
 61         }  
 62      
 63      
 64      /**
 65       * 数据表格datagrid加载
 66       * @param req
 67       * @param resp
 68       * @return
 69       * @throws Exception
 70       */
 71      public String list(HttpServletRequest req,HttpServletResponse resp) throws Exception {
 72             ObjectMapper om = new ObjectMapper();
 73             PageBean pageBean = new PageBean();
 74             pageBean.setRequest(req);
 75             List<Map<String, Object>> list = this.userDao.list(req.getParameterMap(), pageBean);
 76             Map<String, Object> map = new HashMap<String,Object>();
 77             map.put("total", pageBean.getTotal());
 78             map.put("rows", list);
 79 
 80             ResponseUtil.write(resp,om.writeValueAsString(map));
 81                  return null;
 82              
 83                 
 84             }   
 85      
 86      
 87      
 88            /**
 89             * form组件提交方法
 90             * @param req
 91             * @param resp
 92             * @return
 93             * @throws Exception
 94             */
 95      public String edit(HttpServletRequest req,HttpServletResponse resp) throws Exception {
 96             int code = this.userDao.edit(req.getParameterMap());
 97             ObjectMapper om = new ObjectMapper();
 98             Map<String, Object> map = new HashMap<String,Object>();
 99             map.put("code", code);
100             ResponseUtil.write(resp,om.writeValueAsString(map));
101                  return null;
102              
103                 
104             }   
105      
106        /**
107         * 增加
108         * @param req
109         * @param resp
110         * @return
111         * @throws Exception
112         */
113      public int add(HttpServletRequest req,HttpServletResponse resp) throws Exception {
114             int add = this.userDao.add(req.getParameterMap());
115             ObjectMapper om=new ObjectMapper();
116             ResponseUtil.write(resp, om.writeValueAsString(add));
117             return add;
118         }
119 
120     /**
121      * 删除
122      * @param req
123      * @param resp
124      * @return
125      * @throws Exception
126      */
127      public int del(HttpServletRequest req,HttpServletResponse resp) throws Exception {
128             int del = this.userDao.del(req.getParameterMap());
129             ObjectMapper om=new ObjectMapper();
130             ResponseUtil.write(resp, om.writeValueAsString(del));
131             return del;
132         }
133     
134      
135      
136 }

posted @ 2019-07-02 19:05  Mr.XiaoQi  阅读(589)  评论(0编辑  收藏  举报