仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 434|回复: 8
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Spring架构加强MultiActionController(上)

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
在利用Spring供应的把持器时,AbstractController和SimpleFormController是使用得最多的。AbstractController是最基础的Controller,能够赐与用户最年夜的天真性。SimpleFormController则用于典范的表单编纂和提交。在一个必要增,删,改,查的需求中,增添和修正扩大SimpleFormController完成,删除和查询则扩大AbstractController完成。
可是像下面那样完成某一营业对象的增,删,改,查,都属于一类相干的营业。把一类相干的操纵散布到分歧的类往完成,背返“高内聚”的计划准绳。如许四个营业操纵需要四个类来完成,形成太多的类文件,难以保护和设置。
以是Spring自创Struts的DispatchAction供应了相似功效的MultiActionController。能够完成分歧的哀求路径对应MultiActionController中的分歧办法,如许就能够把相干的操纵都在一个类的相干办法中完成。如许使得这个类具有“高内聚”,也利于体系的维护,还制止了反复代码。增添和修正操纵的数据考证逻辑是很类似的,利用MultiActionController后就能够让增添和修正操纵共用一段数据考证逻辑代码。
1.利用MultiActionController
MultiActionController会使分歧的哀求映照为分歧办法,这里是一个完成用户信息增编削查的例子:
1.1SampleMultiMethodController完成
publicclassSampleMultiMethodControllerextendsMultiActionController...{
 //用户信息列表view
 privatestaticfinalStringuserInfoListView="ehld.sample.getuserinfolist";
 //用户信息编纂view
 privatestaticfinalStringuserFormView="ehld.sample.userForm";
 //提交乐成后显现的view
 privatestaticfinalStringuserSuccessView="redirect:ehld.sample.getuserinfolist.do";
 //用户信息列表key值
 privatestaticfinalStringuserInfoListKey="userInfoList";
 //userid
 privatefinalStringuserIdParam="id";
 //界说营业对象
 privateSampleActionsampleAction;
 publicSampleActiongetSampleAction()...{
    returnsampleAction;
 }
 publicvoidsetSampleAction(SampleActionsampleAction)...{
  this.sampleAction=sampleAction;
 }
 /**//**
 *功效:取得一切的用户信息<br>
 */
 publicModelAndViewlistUser(HttpServletRequestrequest,
      HttpServletResponseresponse)throwsException...{
  ListuserInfoList=this.sampleAction.getUserInfoList();
  ModelAndViewmav=newModelAndView(userInfoListView);
  mav.addObject(this.userInfoListKey,userInfoList);
  returnmav;
 }
 /**//**
 *功效:编纂用户信息<br>
 */
 publicModelAndViewedtiUser(HttpServletRequestrequest,
      HttpServletResponseresponse)throwsException...{
  Stringuid=RequestUtils.getStringParameter(request,userIdParam);
  UserInfoDTOuserInfo=null;
  if(!"".equals(uid))...{
  userInfo=this.sampleAction.getUserInfo(uid);
  }
  if(userInfo==null)...{
  userInfo=newUserInfoDTO();
  }
  ModelAndViewmav=newModelAndView(this.userFormView,this
        .getCommandName(null),userInfo);
  returnmav;
 }
 /**//**
 *功效:保留修正或新增的用户信息<br>
 *反省从页面bind的对象,假如userId或userName为空则前往本来的form页面;不然举行保留用户信息操纵,前往
*乐成页面
 */
publicModelAndViewsaveUser(HttpServletRequestrequest,
      HttpServletResponseresponse,UserInfoDTOcommand)throwsException...{
   UserInfoDTOuser=(UserInfoDTO)command;
  ServletRequestDataBinderbinder=newServletRequestDataBinder(command,
        getCommandName(command));
  BindExceptionerrors=binder.getErrors();
  ModelAndViewmav=null;
  if(user.getUserID()==null||"".equals(user.getUserID()))...{
    errors.rejectValue("userID","userIdNull","用户id不克不及为空");
  }
  if(user.getUserName()==null||"".equals(user.getUserName()))...{
    errors.reject("userNameNull","用户名不克不及为空");
  }
  if(errors.hasErrors())...{
   mav=newModelAndView(this.userFormView,errors.getModel());
  }else...{
   this.sampleAction.saveUserInfo(user);//保留用户信息
   mav=newModelAndView(this.userSuccessView);
  }
    returnmav;
}
 /**//**
 *功效:删除用户信息<br>
 */
publicModelAndViewdeleteUser(HttpServletRequestrequest,
      HttpServletResponseresponse)throwsException...{
   Stringuid=RequestUtils.getStringParameter(request,userIdParam);
   UserInfoDTOuser=newUserInfoDTO();
   user.setUserID(uid);
   this.sampleAction.deleteUserInfo(user);
   ModelAndViewmav=newModelAndView(this.userSuccessView);
   returnmav;
}
}
<p>
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。
海妖 该用户已被删除
沙发
发表于 2015-1-20 17:16:23 来自手机 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
admin 该用户已被删除
板凳
发表于 2015-1-29 13:21:40 来自手机 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
第二个灵魂 该用户已被删除
地板
发表于 2015-2-4 01:02:29 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
变相怪杰 该用户已被删除
5#
发表于 2015-2-9 08:45:01 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
再现理想 该用户已被删除
6#
发表于 2015-2-22 21:36:19 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
蒙在股里 该用户已被删除
7#
发表于 2015-3-6 17:25:00 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
活着的死人 该用户已被删除
8#
发表于 2015-3-13 04:08:26 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
若天明 该用户已被删除
9#
发表于 2015-3-20 12:10:58 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 02:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表