`
snoopy7713
  • 浏览: 1129445 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

不学习Struts2的原因

阅读更多

在我眼里,struts还有几个关键的缺点,所以我用了3-5个项目后就不用了。

主要的缺点有这么些:

1、输入输出变量范围定义不清晰。在一个action中,所有输入输出变量都是作为对象变量存在的,既无法区分某个变量是属于哪个方法的,也不能区分哪个变量是输入变量还是输出变量。有人说,我每个请求都用单独的action来处理不就行了。这个办法的确可以区分每个请求之间的输入输出,但是你会面临action数量急剧膨胀的问题。

     输入输出变量定义不清晰的带来的问题是代码可读性比较差。使用struts的时候,极端情况下,你得把jsp+action+js结合起来看才能确定某个请求有哪些输入输出。这对项目的维护者来说实在是件很痛苦的事情。

2、struts在处理ajax请求的时候太不方便了,虽然你可以配置一个插件让strus具备返回json result的功能。但是目前的插件距离我的实际需要还是有差距的。主要的问题在于,struts现有的json插件不能定义java对象序列化到json对象时的映射策略。就拿User对象来说吧,假如我目前设计的是订单界面,订单又引用了User对象作为订单的制单人属性。那么在序列化Order对象到前端的时候,我只需要序列化User对象的id,name就够了,user对象的其他属性可以统统不要。但我如果在维护用户的模块中,显示用户列表的时候,通常要显示用户对象的大部分属性。因此java对象到json对象的序列化策略应该是运行时动态设定的,不可能用annotation来申明。但struts以及struts插件并没有提供运行时根据请求为某个类选择不同映射策略的功能。

struts2,学习成本不可谓不高,功能不可谓不强大,但不符合我的需求。
学习strus2,假如不花个把月时间静下心来学习和实践,估计没人敢说自己精通strus2了。但mvc真的有必要那么复杂么?

mvc是什么?他应该能干什么?他的核心价值在哪?最小的mvc应该包含哪些功能?我们自己写一个mvc如何?自己写一个mvc框架需要超过一个月时间么?

分享到:
评论

相关推荐

    struts2讲义.doc

    Struts是目前世界上所有使用Java语言进行J2EE项目开发的人员经常使用的基于MVC模式的Web项目开发框架之一。它也是目前最早的Web项目开发框架。...希望读者在学习Struts2技术之前,能对Struts2有清晰正确的认识和了解。

    Struts2+Hibernate+Spring(SSH2)+MySQL框架的整合.zip

    Struts2+Hibernate+Spring(SSH2)+MySQL框架的整合,还附带sql脚本,虽然现在SSH已经不想当年那么火了,但是由于很多公司基于技术的成熟性考虑,一般不会再花更过的钱去学习一些新的框架,所以现在很多公司都还在采用...

    struts2.0的标签库学习

    Struts2.0标签学习 1.引入Struts标签的原因 使用标志(Tag)的一个目的就是避免在JSP页面中出现过多的的语句,使页面与后台代码分离。” 2.如何引入 3表达式语言的优势 4.Struts 2中支持的表达式语言 5.常用的...

    Struts2+Hibernate3开发实现青鸟租房管理系统

    本项目使用了Struts2+Hibernate3框架技术, 同时使用Oracle数据库技术,...注:此项目只是为了实现特殊的几个功能,故部分功能因时间原因暂未实现,如删除功能,点击标题查询功能,不过整体看来这个项目还是有很多学习之处的!

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    “本书是毋庸置疑的struts2权威著作,虽然肯定还会有更多相关图书出现,但是我相信它已经不可超越。”  ——JavaRanch网站 “本书内容极为扎实。充满了其他地方找不到的技术细节,而且深入剖析了Struts的内部机理。...

    基于SSH(struts-spring-hibernate)开发的学生成绩管理系统

    基于SSH(struts-spring-hibernate)开发的学生成绩管理系统,附完整报告,SQL文件,环境为:eclipse+mysql+jdk1.8+tomcate8。运行均能通过,可以作为期末大作业。亲测好用,如果调不通的话,可以私信我~~ 该软件的...

    基于struts2+hibernate的在线答疑系统

    老师和学生的交流少,以致老师不了解学生的学习和掌握知识的程度。 为了弥补这些缺陷,提高答疑工作的便捷性和及时性,增加师生之间和学生之间的互动,东城科技大学决定开发该基于B/S的在线答疑系统。

    JSP程序员成长手册

    2:Struts 掌握程度:熟练 原因:如果符合MVC设计通常会使用Struts实现C. 3:Xsp 掌握程度:根据需要而定很多时候是不使用的,但在不需要使用ejb但jsp+servlet+bean实现不了的时候Xsp是一个非常不错的选择。 4:...

    韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全).doc

    韩顺平 Java 从入门到精通视频教程学习笔记整理(齐全) 本文档是韩顺平 Java 从入门到精通视频教程的学习笔记整理,共 94...2. 选择开发工具的原因: * 获得更深刻的理解 Java 技术 * 培养代码感 * 有利于公司面试

    Java_SpringMVC_Tutorial

    学习过的 MVC 框架:Struts2 Spring MVC 就是类似于 Struts2 的 MVC 框架,属于 SpringFrameWork 的后续产品。 2 为什么学 Spring MVC? SpringMVC 与 Struts2 区别 对比项目 SrpingMVC Struts2 优势 国内市场情况 有...

    整理后java开发全套达内学习笔记(含练习)

    short 16bit, -2^15~2^15-1 (2^15=32768) int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算...

    很好的银行系统源代码

    5.Struts1.2.7 的 Validator验证框架 不稳定,只能显示第一个参数,同时执行多个验证时参数的显示顺序也不对,是程序原因还是 配置不正确,再上网查找。 6.本项目大部分错误都用异常的形式来处理,异常虽可以使程序...

    Web安全培训ppt(适合初学者)

    struts2漏洞、Spring远程代码执行漏洞、Java反序列化漏洞 6、建站程序漏洞(1天) Discuz漏洞、CMS漏洞等 三、Web安全系列之防御 1、常见防御方案(1天) 2、安全开发(2天) 开发自检、测试自检、部署自检 开发工具...

    毕业设计-物流管理系统的设计与实现(java)

    采用Struts2+hibernate+Oracle10g+Tomcat 涉及车辆管理,配送点管理,运输方式管理,订单管理,员工管理,用户管理,部门管理,权限管理,角色管理等基础管理功能。 系统功能及技术性能指标: 1.1前台管理 (1)登录...

    Hibernate---我的Hibernate学习笔记

    2.对象持久化的原因(目标):物理:1)内存不能持久,需要在硬盘上持久保存//(物理上,物理的都不是根本原因)2)内存容量有限,需要在容量更大的硬盘上保存应用:3)共享(Internet的本质:信息的收集、

    计算机专业毕业实习日记.docx

    Struts这个框架其实就是Java MVC设计模式中简称Model1与Model2Model2的一个具体实现,Spring 则通过提供ICO控制反转,也称依赖注入实现了对对象甚至事务如声明式事务的集中管理,此外还引入了AOP对向切面编程,当然...

    JAVA自学之路

    有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。 这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照...

Global site tag (gtag.js) - Google Analytics