easyui框架前后端交互_EasyUi前后端分离

以前的JavaWeb项目大多数都是java程序员又当爹又当妈,又搞前端,又搞后端。

随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。

大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。

1、对于后端java工程师:

把精力放在java基础,设计模式,jvm原理,spring+springmvc原理及源码,linux,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构,弹性计算架构,微服务架构,java性能优化,以及相关的项目管理等等。

后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。

2、对于前端工程师:

把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。

前端追求的是:页面表现,速度流畅,兼容性,用户体验等等。

术业有专攻,这样你的核心竞争力才会越来越高,正所谓你往生活中投入什么,生活就会反馈给你什么。并且两端的发展都越来越高深,你想什么都会,那你毕竟什么都不精。

通过将team分成前后端team,让两边的工程师更加专注各自的领域,独立治理,然后构建出一个全栈式的精益求精的team

案例:增删改查

前台界面

1

2

3

4

5

6

7

8

9

10

11 data-options="iconCls:'icon-save',resizable:true,modal:true,closed:true,buttons:'#bb'">

12

13

14

15

16 uid:

17

18

19

20 uname:

21

22

23

24 upwd:

25

26

27

28

29

30 保存

31 关闭

32

外部的js:

1 $(function() {2 $('#dg').datagrid({3 fitColumns : true,4 fit :false,5 pagination : true,6 url : $("#ctx").val()+'/userAction.action?methodName=list',7 columns : [ [ {8 field : 'uid',9 title : '代码',10 width : 100

11 }, {12 field : 'uname',13 title : '名称',14 width : 100

15 }, {16 field : 'upwd',17 title : '价格',18 width : 100,19 align : 'right'

20 } ] ],21 toolbar : [ {22 iconCls : 'icon-edit',23 handler : function() {24 //获取选中项

25 var row = $('#dg').datagrid('getSelected');26 if(row){27 //将提交方法修改为edit

28 $("#methodName").val("edit");29 //将数据加载到表格中

30 $('#ff').form('load', row);31 $('#dd').dialog('open');32

33

34 }35

36 }37 }, '-', {38 iconCls : 'icon-add',39 handler : function() {40 $('#ff').form('clear');41 $('#dd').dialog('open');42 $("#methodName").val("add");43

44 }45 }, '-', {46 iconCls : 'icon-remove',47 handler : function() {48 var data = $('#dg').datagrid('getSelected');49 console.log(data.serialno);50 $.ajax({51 url:"userAction.action?methodName=remove",52 data:{serialno:data.serialno},53 success:function(data){54 $('#dg').datagrid('reload');55 }56 });57 }58 } ]59 });60

61 $("#seach").submit(function(){62 console.log($("#seachName").val());63 $('#dg').datagrid('load', {64 uname: $("#seachName").val()65 });66 return false;67 });68

69 })70

71 function ok() {72 console.log('userAction.action?methodName='+$("#methodName").val());73 $('#ff').form('submit', {74 url : 'userAction.action?methodName='+$("#methodName").val(),75 success : function(param) {76 $('#dd').dialog('close');77 $('#dg').datagrid('reload');78 }79 });80 }

其中中间有easyui的一些控件在网上也是可以查到的

1.datagrid 布局

2.diakog布局

3.form布局

然后增删改查的dao方法

1 public List> list(Map paMap,PageBean pageBean) throwsInstantiationException, IllegalAccessException, SQLException{2 String sql="select * from t_easyui_user_version2 where true";3 String uname=JsonUtils.getParamVal(paMap, "uname");4 if(StringUtils.isNotBlank(uname)) {5 sql=sql+" and uname like '%"+uname+"%'";6 }7

8

9 return super.executeQuery(sql, pageBean);10

11 }12

13 /**

14 * 通过中间表查询登陆用户所对应的权限15 *@parampaMap16 *@parampageBean17 *@return

18 *@throwsInstantiationException19 *@throwsIllegalAccessException20 *@throwsSQLException21 */

22 public List> listMenu(String uid,PageBean pageBean) throwsInstantiationException, IllegalAccessException, SQLException{23 String sql="select * from t_easyui_usermenu where true";24

25 if(StringUtils.isNotBlank(uid)) {26 sql=sql+" and uid="+uid;27 }28 return super.executeQuery(sql, pageBean);29

30 }31 /**

32 * 修改方法33 *@parampaMap34 *@return

35 *@throwsException36 */

37 public int edit(Map paMap) throwsException {38 String sql= "update t_easyui_user_version2 set uid=?,uname=?,upwd=? where serialno=?";39 return super.executeUpdate(sql, new String[] {"uid","uname","upwd","serialno"}, paMap);40 }41

42 /**

43 * 指定id移除44 *@parampaMap45 *@return

46 *@throwsNoSuchFieldException47 *@throwsSecurityException48 *@throwsIllegalArgumentException49 *@throwsIllegalAccessException50 *@throwsSQLException51 */

52 public int add(Map paMap) throwsNoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {53 String sql = "INSERT INTO t_easyui_user_version2 (uid, uname, upwd) VALUES(?,?,?);";54 return super.executeUpdate(sql, new String[] {"uid","uname","upwd"}, paMap);55 }56

57

58 /**

59 * 指定id删除60 *@parampaMap61 *@return

62 *@throwsNoSuchFieldException63 *@throwsSecurityException64 *@throwsIllegalArgumentException65 *@throwsIllegalAccessException66 *@throwsSQLException67 */

68 public int remove (Map paMap) throwsNoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {69 String sql = "DELETE FROM t_easyui_user_version2 WHERE serialno =?";70 return super.executeUpdate(sql, new String[] {"serialno"}, paMap);

web调用

publicString login(HttpServletRequest req,HttpServletResponse resp) {try{

List> list= this.userDao.list(req.getParameterMap(), null);if(list!=null&&list.size()>0) {

List>listMenu= this.userDao.listMenu(req.getParameter("uid"), null);

StringBuilder sb=newStringBuilder();for (Mapmap : listMenu) {

sb.append(","+map.get("menuId"));

}

req.setAttribute("menuHid", sb.substring(1));

}else{return "login";

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return "index";

}/*** datagrid 所需数据后端程序员开发完毕

*@paramreq

*@paramresp

*@return

*/

publicString list(HttpServletRequest req,HttpServletResponse resp) {try{

PageBean pageBean=newPageBean();

pageBean.setRequest(req);

List> list=this.userDao.list(req.getParameterMap(), pageBean);

ObjectMapper om=newObjectMapper();

Map map=new HashMap<>();

map.put("total", pageBean.getTotal());

map.put("rows", list);

ResponseUtil.write(resp, om.writeValueAsString(map));

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}/*** form组件提交所需数据后端程序员处理完毕

*@paramreq

*@paramresp

*@return

*/

publicString edit(HttpServletRequest req,HttpServletResponse resp) {try{int edit=this.userDao.edit(req.getParameterMap());

ObjectMapper om=newObjectMapper();

ResponseUtil.write(resp, om.writeValueAsString(edit));

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}/*** 新增

*@paramreq

*@paramresp

*@return

*/

publicString add(HttpServletRequest req,HttpServletResponse resp) {try{int add=this.userDao.add(req.getParameterMap());

ObjectMapper om=newObjectMapper();

ResponseUtil.write(resp, om.writeValueAsString(add));

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}/*** 刪除

*@paramreq

*@paramresp

*@return

*/

publicString remove(HttpServletRequest req,HttpServletResponse resp) {try{int remove=this.userDao.remove(req.getParameterMap());

ObjectMapper om=newObjectMapper();

ResponseUtil.write(resp, om.writeValueAsString(remove));

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}

完成运行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EasyUI 是一个基于 jQuery 的 UI 插件库,用于简化 Web 应用程序的前开发。前后交互是实现 Web 应用程序的关键之一。以下是 EasyUI 实现前后交互的步骤: 1. 前页面中使用 EasyUI 组件,例如 datagrid、form 等。 2. 在前 JavaScript 中使用 Ajax 技术,向后发送数据请求。 3. 后接收请求,并根据请求的参数进行相应的处理。 4. 后处理完成后,将处理结果返回给前。可以使用 JSON 格式返回数据。 5. 前 JavaScript 接收到后返回的数据,根据数据进行相应的操作。 下面是一个示例代码,实现了在 EasyUI datagrid 中显示后返回的数据。 前代码: ```html <div class="easyui-datagrid" id="datagrid"></div> <script> $(function(){ $('#datagrid').datagrid({ url: 'backend.php?action=get_data', columns:[[ {field:'id',title:'ID'}, {field:'name',title:'Name'}, {field:'age',title:'Age'}, ]], }); }); </script> ``` 后代码(backend.php): ```php <?php $action = $_GET['action']; if ($action == 'get_data') { $data = array( array('id'=>1, 'name'=>'Tom', 'age'=>20), array('id'=>2, 'name'=>'Jerry', 'age'=>18), array('id'=>3, 'name'=>'Marry', 'age'=>22), ); echo json_encode($data); } ?> ``` 在上面的代码中,前页面使用了 EasyUI datagrid 组件,并指定了一个 url 属性,该属性指向后 PHP 文件 backend.php,并传递了一个参数 action=get_data。后 PHP 文件根据参数 action 的值,返回相应的数据。前 JavaScript 接收到后返回的数据后,会自动将数据渲染到 datagrid 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值