Spring MVC和Struts2的区别

时间: 发布人:glik.

Spring MVC和Struts2的区别

已解决问题

谷歌glik.用户在提交了关于“长岛Spring MVC和Struts2的区别”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-02T14:26:42。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:vivd66  

spring3mvc与struts2比板底源课销玉条或加较
项目刚刚换了web层框架,放弃了struts2改用spring3mvc
当初还框架的时候目的比较单纯---springmvc支持rest,小生对restfulurl由衷的喜欢
不用不知道一用就发现开发效率确实比struts2高

我们用struts2时采用的传统的配置文件的方式,并没有使用传晚导停评房曾市说中的0配置
spring3来自mvc可以认为已经10问答0%零配置了(除了配置springmvc-ser大vlet.xml外)

比较了一下strus2与spring3mvc的差别

============================================
struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用s药慢动雷脚ettergetter方法把request中的**注入
struts2实际上是通过settergetter方法与request打交道的
struts2中,一个Action对象对应一个request上下文

spring3mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request**注入进
在spring3mvc中,一个方法对应一个request上下文

好了我们来整理一下
struts2是类级别的拦截,一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上spring3mvc就容易实现res电象tfulurl
而struts2的架构实除特促就引境硫责费远城现起来要费劲
因为struts2action的一个方法可以对应一个url
而其类属性却被所有方法**享,这也就无法用注解或其他方式标识其所属方法了

=========开个云==========================
spring3mvc的方法之间基本上独立的,独享requestresponse**
请求**通过参数获取,处理结果通过Mode形切跑限重秋女食乐日lMap交回给框架
方法之间不**享变量

而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是脱头执往听迫过伯定变检**享的
这不会影响程序运行,却给我们编码读程序时带来麻烦

=======节燃刑难底镇=============================
spring3mvc的验也是一个亮点,支持JSR303
处理ajax的请求更是方便只需一个注解@ResponseBody,然后直接返回响应文本即可

附上一段代
J**a代码
@RequestMapping(value="/whit配强拿再elists")
publicStringindex(ModelMapmap){
Accountaccount=accountManager.getByDigitId(SecurityConte教造增谓脱投xth**older.get().getDigitId());
List<Group>groupList=groupManager.findAllGroup(account.getId());
map.put("account",account);
map.put("groupList",grou不原充住领笑拿怎厂跑pList);
return"/group/group-index";
}
//@ResponseBodyajax响应
@RequestMapping(value="/white都认矿消升真景list/{whiteLis验居突名烈曲样销tId}/del")
@ResponseBody
pu致blicStringdelete(@PathVariableIntegerwhiteLis村根二tId){
whiteListM笑句求旧信纸知等还抓密anager.deleteWhiteList(whiteListId);
return"success";
}