了解下JAVA的Spring架构加强MultiActionController(上)
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,那他就是整型而不是对象,转换类型是还得借助包装类。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
页:
[1]