|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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,那他就是整型而不是对象,转换类型是还得借助包装类。 |
|