为什么主流Java MVC框架如此难以使用

原创 2009年06月25日 14:01:00

使用J2EE Web开发已经好几年了,从JSP、Struts、WebWork到现在的Struts 2、Wicket,没有一个用起来简单顺手的。

 

无论哪个框架吹嘘自己有多么简单和高效的生产力,甚至让一个从未接触过Web开发的人5分钟能上手,绝对是骗人的。照着教程做一个Hello World还可以,一旦网站规模一大,根本无法维护。

 

再深入挖掘一下,你会发现,其实一个MVC框架无论服务器端设计有多么差,其实也差不到哪去,有面向对象经验的开发人员都可以写出比较能维护的代码,即便像Struts这种比较古老的框架,服务器端开发也不难,和WebWork2比仅仅是不方便而已。

 

但是到了View这一层就五花八门了,总体来说,有以下几路主流门派:

 

1. 以Struts为代表的JSP + Tag派,真叫一个难用,尤其是Tag,不但要查手册,你还必须写出if equals ... else的逻辑来。

 

2. 以JSF为代表的全Tag派,基本上写一个JSP和一个XML没啥区别,都是Tag堆出来的,甚至变态到HTML元素都给Tag了,比如<h:div>。

 

3. 以Wicket为代表的嵌入式派,可以通过<span wicket:id="message" id="message">来搞定,不破坏HTML,不过通过Filter过滤性能值得怀疑。

 

无论哪种MVC框架,目的都是要简化View的开发,然而在实际使用时却发现,简化了简单的页面,复杂页面却变得更复杂了,因为这些MVC框架都普遍忽视了一个基本原理:现代Web技术是建立在HTML+CSS+JavaScript基础上的,任何试图帮助Java开发者隐藏HTML、CSS和JavaScript的努力最终都将阻碍Web开发。不会HTML,不会CSS,不会JavaScript,那就不要做Web开发,无论你多么精通Java!

 

正是由于这些MVC框架有意无意地让Java开发人员远离HTML,才造成了View开发的困难重重。尤其以JSF为代表,性能就不说了,要添加JavaScript你只能先看编译后的HTML源码,要修改CSS要DEBUG至少N次,所有的可视化HTML编辑器都用不了。

 

所以,要真正提高Web开发的生产力,尤其是页面的可维护性,Web页面必须由精通HTML+CSS+JavaScript的开发人员完成,服务器端技术对这些的侵入性越小,页面越容易维护。目前我认为比较好的View框架还是Velocity和FreeMarker,通过<div>${message}</div>比JSP Tag强很多,结合HTML可视化编辑器(主要指Dreamwaver),调试起来非常方便,而且不用重启服务器。至于服务器端,其实各MVC大同小异,我一直使用Spring MVC+Velocity,少集成一个框架毕竟麻烦少一些。

 

深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

query_condention.jsp(输入查询条件)、SearchStudentServlet.java(请求控制Control分)+student_list.jsp(界面显示)的组合相当于三层中...
  • lishehe
  • lishehe
  • 2014年04月08日 07:56
  • 41329

浅谈Javaweb经典三层架构和MVC框架模式

浅谈javaweb三大框架和MVC设计模式 小序:博主以前在学javaweb的时候开始总不理解javaweb三大框架和MVC框架模式,虽然没有把两者混为一谈,但是也是很晕菜。作为一个Java开发程序...
  • sunpeng19960715
  • sunpeng19960715
  • 2016年03月14日 22:53
  • 27068

三分钟教你学会MVC框架——基于java web开发

转载自;http://www.cnblogs.com/levenyes/p/3290885.html MVC全名是Model View Controller,是模型(model)-视...
  • xiaodanjava
  • xiaodanjava
  • 2016年06月18日 16:03
  • 16105

Java Web自定义MVC框架详解

最近上Java Web的课程,给学生讲自定义MVC框架,发现百度上能收到的靠谱的资料并不是很多,有些只是原理没有代码实现,有些有代码实现但是对于初学者或者刚工作的Java程序员来说理解很困难,于是乎决...
  • jackfrued
  • jackfrued
  • 2015年01月16日 10:56
  • 42158

javaweb三大框架和MVC设计模式

浅谈javaweb三大框架和MVC设计模式 小序:博主以前在学javaweb的时候开始总不理解javaweb三大框架和MVC框架模式,虽然没有把两者混为一谈,但是也是很晕菜。作为一个Java开发...
  • snakeMoving
  • snakeMoving
  • 2016年11月17日 23:32
  • 4571

3.自己动手写Java Web框架-MVC初体验

jw的github地址是https://github.com/menyouping/jw第一次看到这篇文章时非常惊讶,介绍FastPHP如何实现一个简易的MVC。我的大脑中总是将Servlet与Spr...
  • beautiful5200
  • beautiful5200
  • 2016年09月16日 22:53
  • 1961

Java mvc 框架例子

  • 2010年01月23日 03:01
  • 3KB
  • 下载

Java Spring MVC分层设计

Java Spring开发,Controller, Service, DAO, Entity分层设计及代码实现。
  • chris_mao
  • chris_mao
  • 2015年09月24日 00:09
  • 15479

自己动手写javaweb mvc框架 之 项目准备

从今天开始我将通过使用Java语言实现一个完整的框架设计,这个框架中主要内容有第一小节介绍的Web框架的结构规划,例如采用MVC模式来进行开发,程序的执行流程设计等内容;第二小节介绍框架的第一个功能:...
  • A1023824314
  • A1023824314
  • 2016年07月22日 23:11
  • 2205

10步教你学会简单的MVC架构的java程序(适合新手)

10步教你学会简单的MVC架构的java程序(适合新手) 第1步:安装Oracle数据库,安装过程不赘述了; 第2步:新建一个账号zwp_test //创建临时表空间 create temporar...
  • Davis_Chou
  • Davis_Chou
  • 2014年11月30日 22:24
  • 4527
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么主流Java MVC框架如此难以使用
举报原因:
原因补充:

(最多只允许输入30个字)