版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 2011-08-02Spring3MVC,MyBatis,之前写过一篇Spring3MVC+Hibernate的整合,这套架构使用了一段时间后,发现自己对Hibernate的应用程度实在不如人意,看着项目中一堆的sql和hql,决定还是放弃hibernate,转投MyBatis,似乎更适合我这种喜欢灵活控制,习惯了写sl的我。这次打算写一系列关于Spring3MVC+MyBatis+ExtJs3应用开发的文章,这篇算是开头篇吧,还是从咋们最熟悉的登录系统那一幕开始。 persistence:持久层,其中XXMapper.java为interface,XXMapper.xml为sqlmapping配置,两者结合形成web.xml:这个没啥好说的了 这个项目目前完成度,仅仅是完成了登录功能,后续还有人员角色菜单管理等功能,就让我慢慢完善吧,有兴趣的coder,也可以自己尝试完善下系统的功能,然后发帖出来共享交流下。2011-08-06spring3mvc,mybatis,承接上篇Spring3MVC+MyBatis+ExtJs3整合开发系列之一:登录模块演示,本篇增加了菜单加载的功能到本项目中。publicpublicclassMenuimplementsSerializableprivatestaticfinallongserialVersionUID=-privateLongid;privateStringname;privateStringimage;privateStringurl;privateStringqtip;privateIntegersortNum;privateStringdescription;*true:privateprivatebooleanleaf=true;privateList<Menu>children;其中,leaf用来标识主子菜单(同时也是为了配合前端extjstreePanel控件所需的标识),这里true表示为publicclass{publicList<Menu>getMenuListByUserId(Long{Map<String,Object>param=newHashMap<String,Object>();List<Menu>mainMenuList=menuMapper.getMainMenuList(userId);Iterator<Menu>it=mainMenuList.iterator();while(it.hasNext()){Menumenu=LongparentId=menu.getId();param.put("userId",userId);param.put("parentId",parentId);}return}}publicclassUserController{privateUserServiceuserService;privateMenuService@param@parampublic@ResponseBodyMap<String,Object>getTopMenus(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>result=newHashMap<String,Object>(); List<Menu>list=menuService.getMenuListByUserId(user.getId());result.put("success","true");result.put("data",list);returnresult;}spring3mvc封装了json的自动转换,使用@ResponseBody标记下该方法,这样return对象的时候,将自动帮你把普通的pjo对象转成jsn格式的对象.发表时间:2011-08-11关键字:spring3mvchi,boysandgirls,icomebackagain!publicinterfacepublicinterface{LongUserlogin(Map<String,Object>param);List<User>getUserList();voidinsertUser(UservoidinsertUserRole(Map<String,Object>param);voidupdateUser(Useruser);voidupdateUserRole(Map<String,Object>param);voiddeleteUser(Map<String,Object>param);voiddeleteUserRole(Map<String,Object>param);voidchangeUserPassword(Map<String,Object>}<?xml<?xmlversion="1.0"encoding="UTF-<!DOCTYPEmapperPUBLIC"-////DTDMapper3.0//EN"<cache<selectid="getId"resultType="long">SELECTmax(id)+1FROM<selectid="login"parameterType="map"resultType="User">FROMWHEREname=#{name}ANDpassword=<selectid="getUser"parameterType="map"resultType="User">FROM<iftest="id!=id=<iftest="name!=ANDname=<iftest="password!=ANDpassword=<selectid="getUserList"u.idasuser_id,asuser_name,r.idasrole_id,asrole_name,FROMt_userLEFTJOINt_user_roleurON(u.id=ur.user_id)LEFTJOINt_rolerON(r.id=ur.role_id)<resultMap <id column="user_id"<resultproperty="name"<resultproperty="createDate"<collection <id <result <insertid="insertUser"parameterType="User"INSERTINTOt_user(id,name,password,VALUES(#{id},#{name},#{password},INSERTINTOt_user_role(user_id,role_id)VALUES(#{user_id},<updateid="updateUser" UPDATEt_user<iftest="name!=<if<iftest="password!=WHERE UPDATEt_user_roleSETWHERE<delete DELETEFROMt_userWHERE<deleteDELETEFROMt_user_roleWHERE 这里特别说明下xml配置中的"<cache/>"缓存配置项,如果开启了缓存(这里就开启了),需要注意数据的publicclass{privateUserMapperpublicLonggetId()return}@parampublicUserlogin(Map<String,Object>{return}@parampublicUsergetUser(Map<String,Object>{return}return}@param@parampublicvoidinsertUser(Useruser,Map<String,Object>param)StringroleList=(String)param.get("roleList");if(!"".equals(roleList)){}}@param@parampublicvoidupdateUser(Useruser,Map<String,Object>param)}@parampublicvoiddeleteUser(Map<String,Object>{Stringids=(String)param.get("ids");String[]idsArray=ids.split(",");for(inti=0;i<idsArray.length;i++){param.put("id",idsArray[i]);param.put("user_id",idsArray[i]);}}@paramprivatevoidinsertUserRole(Map<String,Object>{StringroleList=(String)param.get("roleList"); for(inti=0;i<roleArray.length;i++){param.put("role_id",roleArray[i]);}}@parampublicvoidchangeUserPassword(Map<String,Object>{}}publicclassUserController{privateUserServiceuserService;privateMenuService@param@param@parampublic@ResponseBodyMap<String,String>loginCheck(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,String>responseMap=newHashMap<String,String>();Stringcaptcha=request.getParameter("captcha");Stringname=Stringpassword=Stringvcode=(String)request.getSession().getAttribute("vcode");if(vcode==null||!captcha.equals(vcode)){responseMap.put("success","false");responseMap.put("inforeturnresponseMap;}try
Map<String,Object>param=newHashMap<String,Object>();param.put("name",name);param.put("password",Useruser=userService.login(param);if(user!=null){responseMap.put("success","true");responseMap.put("info","登录成功!");request.getSession().setAttribute("user",user);returnresponseMap;}else}
responseMap.put("success","false");responseMap.put("inforeturnresponseMap;}catch(Exceptione)responseMap.put("info",e.getClass()+":"+e.getMessage());returnresponseMap;}}@param@parampublic@ResponseBodyMap<String,Object>getMenus(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>responseMap=newHashMap<String,Object>(); List<Menu>list=menuService.getMenuListByUserId(user.getId());responseMap.put("success","true");responseMap.put("data",list);returnresponseMap;}@param@parampublic@ResponseBodyMap<String,Object>getUsers(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>responseMap=newHashMap<String,Object>();List<User>userList=userService.getUserList();responseMap.put("totalCount",userList.size());responseMap.put("rows",userList);return}保存用户信息(新增用户or编辑用户@param@param@parampublic@ResponseBodyMap<String,Object>saveOrUpdate(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>responseMap=newHashMap<String,Object>();Stringid=request.getParameter("id");Stringname=StringroleList=request.getParameter("roleList");try{if(!"".equals(id))Map<String,Object>param=newHashMap<String,Object>();param.put("id",id);Useruser=userService.getUser(param);if(!"".equals(password}param.put("user_id",id);param.put("roleList",roleList);userService.updateUser(user,param);responseMap.put("success","true");responseMap.put("info}elseUseruser=newLongnewId=userService.getId();user.setCreateDate(newDate());Map<String,Object>param=newHashMap<String,Object>(); param.put("roleList",roleList);userService.insertUser(user,param);responseMap.put("method"Create");responseMap.put("success","true");responseMap.put("info}return}catch(Exceptione)responseMap.put("info",e.getClass()+":"+e.getMessage());returnresponseMap;}}@param@parampublic@ResponseBodyMap<String,Object>remove(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>responseMap=newHashMap<String,Object>(); Map<String,Object>param=newHashMap<String,Object>(); tryresponseMap.put("success","true");responseMap.put("inforeturnresponseMap;}catch(Exceptione)responseMap.put("info",e.getClass()+":"+e.getMessage());returnresponseMap;}}@param@parampublic@ResponseBodyMap<String,Object>changePassword(HttpServletRequestrequest,HttpServletResponseresponse){Map<String,Object>responseMap=newHashMap<String,Object>(); StringnewPassword=request.getParameter("newPassword");Useruser=(User)request.getSession().getAttribute("user");try{//验证通过,允许修改密码if(oldPassword.equals(user.getPassword())){Map<String,Object>param=newHashMap<String,Object>();param.put("id",user.getId());param.put("newPassword",newPassword);request.getSession().setAttribute("user",user);responseMap.put("success","true");r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市兴塔中学2022-2023学年高二物理知识点试题含解析
- 2024价格保护合同范本
- 浙江省丽水市章旦中学高二物理模拟试卷含解析
- 2022-2023学年山东省潍坊市高密实验中学高二物理联考试卷含解析
- 河北省承德市平泉县党坝中学高二物理知识点试题含解析
- 施工现场防火措施
- 2024专项资金合同范文
- 2024健身房会员入会合同范本模板
- 2024保证反担保合同
- 美容院劳动合同
- 中国平面设计指导价格
- 小学教育专业毕业设计
- 马原论文 《摩登时代》观后感
- 不符合检验检测工作纠正措施表(完整版)
- 人教版六年级语文阅读题50篇(有答案)+小升初语文复习大全
- ITMS带外网管系统方案
- 中国数学发展史概述
- 幼儿园智慧教育(智慧学校)智慧园创建工作汇报
- 玻璃钢水箱的设计
- 2019译林版高中英语必修二单词表
- 产品召回演练模版
评论
0/150
提交评论