分享

spring mvc+easyui 初试

 wayne_liberary 2014-08-06

   最近这段时间都在做关于Flex项目,下班时间关注了下easyui,同事开发也都在用,对于民工的我来说,学点前端无疑可以增加点资本。

整个框架采用后台spring mvc +持久层mybatis+前端展示easyui+数据库mysql。嘿嘿,不难吧,只是一个练手的小demo,其他功能都在完善中。

先看下界面:

个人认为easyui框架将一般开发中要用的组件,布局都表现的不错的,至少对于实习生的我来说,学着蛮开心的,至于它本身的局限以及存在的Bug问题,也只能另辟蹊径去解决喽,呵呵。

介绍下datagrid,我是这样来写这个“管理员信息一览表”页面的

  1.  <body id="">  
  2. <!-- 用户列表 -->  
  3. <div id="tabs" class="easyui-tabs"  fit="true" border="false" >  
  4.         <div title="用户列表" style="padding:0px;overflow:hidden; color:red; " >  
  5.           <div id="test"></div>  
  6.         </div>  
  7. </div>  
  8.  </body>  
页面内部添加的datagrid-demo.js,js中主要是对表的一些操作以及datagrid布局,colmun样式

  1. $(document).ready(function() {  
  2.             $("#test").datagrid({  
  3.                 loadMsg:'数据加载中....',  
  4.                 title:'管理员信息一览表',  
  5.                 iconCls:'icon-edit',  
  6.                 width:1184,  
  7.                 height:530,  
  8.                 url:'<span style="color:#FF0000;"><%=basePath%>userlist.do</span>',  
  9.                 nowrap: false,  
  10.                 striped: true,  
  11.                 collapsible:true,  
  12.                 sortName: 'uid',  
  13.                 sortOrder: 'desc',  
  14.                 remoteSort: false,  
  15.                 pagination:true,  
  16.                 rownumbers:true,  
  17.                 frozenColumns:[[  
  18.                     {field:'ck',checkbox:true},  
  19.                     {title:'编号',field:'id',width:80,sortable:true}  
  20.                 ]],  
  21.                 columns:[[  
  22.                     {title:'基本信息',colspan:3},  
  23.                     {field:'opt',title:'操作',width:100,align:'center', rowspan:2,  
  24.                         formatter:function(value,rec){  
  25.                             return '<span style="color:red">编辑    删除</span>';  
  26.                         }  
  27.                     }  
  28.                 ],[  
  29.                     {field:'name',title:'用户名',width:120},  
  30.                     {field:'age',title:'年龄',width:120},  
  31.                     {field:'phone',title:'联系方式',width:120}  
  32.                 ]],  
  33.                   
  34.                 toolbar:[{  
  35.                     id:'btnadd',  
  36.                     text:'新增用户',  
  37.                     iconCls:'icon-add',  
  38.                     handler:function(){  
  39.                         openDialog_add();  
  40.                     }  
  41.                 },'-',{  
  42.                     id:'btncut',  
  43.                     text:'删除用户',  
  44.                     iconCls:'icon-cancel',  
  45.                     handler:function(){  
  46.                         batch('delete');  
  47.                     }  
  48.                 },'-',{  
  49.                     id:'btnstart',  
  50.                     text:'批量启用',  
  51.                     iconCls:'icon-ok',  
  52.                     handler:function(){  
  53.                         batch('delete');  
  54.                     }  
  55.                 },'-',{  
  56.                     id:'btnstop',  
  57.                     text:'批量禁用',  
  58.                     iconCls:'icon-remove',  
  59.                     handle:function(){  
  60.                         batch('invalid');  
  61.                     }  
  62.                 }]  
  63.             });  
  64.             var p = $('#test').datagrid('getPager');  
  65.             if (p){  
  66.                 $(p).pagination({  
  67.                     onBeforeRefresh:function(){  
  68.                         alert('before refresh');  
  69.                     }  
  70.                 });  
  71.             }  
  72.         });  
  73.         function resize(){  
  74.             $('#test').datagrid('resize', {  
  75.                 width:700,  
  76.                 height:400  
  77.             });  
  78.         }  
  79.         function getSelected(){  
  80.             var selected = $('#test').datagrid('getSelected');  
  81.             if (selected){  
  82.                 alert(selected.code+":"+selected.name+":"+selected.addr+":"+selected.col4);  
  83.             }  
  84.         }  
  85.         function getSelections(){  
  86.             var ids = [];  
  87.             var rows = $('#test').datagrid('getSelections');  
  88.             for(var i=0;i<rows.length;i++){  
  89.                 ids.push(rows[i].code);  
  90.             }  
  91.             alert(ids.join(':'));  
  92.         }  
  93.         function clearSelections(){  
  94.             $('#test').datagrid('clearSelections');  
  95.         }  
  96.         function selectRow(){  
  97.             $('#test').datagrid('selectRow',2);  
  98.         }  
  99.         function selectRecord(){  
  100.             $('#test').datagrid('selectRecord','002');  
  101.         }  
  102.         function unselectRow(){  
  103.             $('#test').datagrid('unselectRow',2);  
  104.         }  
  105.         function mergeCells(){  
  106.             $('#test').datagrid('mergeCells',{  
  107.                 index:2,  
  108.                 field:'addr',  
  109.                 rowspan:2,  
  110.                 colspan:2  
  111.             });  
  112.         }  
其中的url为调用后台userlist方法,由于采用的是spring mvc,controller中方法如下:

  1. @RequestMapping("userlist")  
  2.     <span style="color:#FF0000;">@ResponseBody</span>   //<span style="color:#FF0000;">1</span>  
  3.     public Object  listUser(HttpServletRequest req,HttpServletResponse response) throws IOException{  
  4.         Map<String, Object> result = new HashMap<String, Object>(2) ;    
  5.         List<User> users = userService.getAllUser(null, null);  
  6.         JSONArray jsonArray = new JSONArray();  
  7.         for(User user:users){  
  8.              JSONObject jsonObject = new JSONObject();  
  9.              jsonObject.put("id",user.getUid()) ;  
  10.              jsonObject.put("name",user.getName());  
  11.              jsonObject.put("age", user.getAge());  
  12.              jsonObject.put("phone",user.getPhone());  
  13.              jsonArray.add(jsonObject) ;  
  14.         }  
  15.                 //<span style="color:#FF0000;">2</span>  
  16.  <span style="color:#FF0000;">               result.put("total", users.size());  
  17.         result.put("rows",jsonArray) ;</span>  
  18.         return JSONObject.fromObject(result);  
  19.     }  
这里要注意下,就是后台返回的数据必须要与easyui中datagrid接收json形式一样才能显示,不然很纠结的,调试了半天都不知道是什么办法,问了下旁边的同事才解决,实习生伤不起啊,嘿嘿,开发过程中如果能找到一个好的师傅,真的很棒,在这里我也特别感谢经常帮助我的杨成大哥,哈哈!

//1处这里是在SpringMVC中可以在Controller的某个方法上加@ResponseBody注解,表示该方法的返回结果直接写入HTTP response body中,返回一个字符串,spring mvc中很好的支持了json格式,配置文件中添加json转换器,如果不加这个注解,你是看不到效果的!配置文件中写法如下

  1. <bean class ="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >    
  2.         <property name="messageConverters">    
  3.             <list>    
  4.                 <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->    
  5.             </list>    
  6.         </property>    
  7. </bean>     

以上就是最近两天空余时间做的小demo,最近在学highcarts,集成到demo中可以生成很漂亮的统计图。下周会积蓄完善模块包括用户登录模块,输入输出excel格式,上传文件等等,想慢慢的把这个框架整合成一个小型的应用系统,呵呵,也算对实习期间一个很好的交代。 10~11月,马上就要校招,会有好多招聘会,还是小菜鸟的我不得不抓紧时间了,哎!时间浪费了好多,期待自己可以找到一份满意的工作吧!加油!





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多