`
lgstarzkhl
  • 浏览: 328467 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

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

阅读更多
使用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,少集成一个框架毕竟麻烦少一些。
分享到:
评论

相关推荐

    35dir分类目录系统使用主流PHP开发语言,MVC框架,.zip

    35dir分类目录系统使用主流PHP开发语言,MVC框架,MYSQL轻量级数据库开发.支持无限级分类,自定义标签,自定义模板,文章系统,友情链接系统,第三方登录,自定义伪静态url,链接检测等强大功能! 软件开发设计:应用软件开发...

    spring_MVC.zip

    参考Spring MVC Web框架,实现一个MVC Web框架.利用Java EE技术参考Spring ...- Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一 - Spring3.0后全面超越Struts2,成为最优秀的MVC框架

    java框架一般配置

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来...

    java主流开发框架演变历程.pptx

    java

    springMVC_day01.xmind

    SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持...

    CSDN最全面JavaEE面试题(Spring,SpringMVC,Hibernate,Mybatis)

    1,java基础知识 2,javaWeb 3,java主流三大框架面试题

    Spring.MVC-A.Tutorial-Spring.MVC学习指南

    作为当今业界主流的Web开发框架,Spring MVC已经成为当前热门的开发技能,同时也广泛用于桌面开发领域。  《Spring MVC学习指南》重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring...

    springmvc第一天.pdf

    SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架, 属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功 能 MVC 模块。...

    03-主流框架-02-spring-MVC.doc

    03-主流框架-02-spring-MVC.doc

    开发者突击:java主流框架 第6章

    Servlet是JSP的前身,在MVC架构中起到控制中心的作用。本章就来详细讲解Servlet的技术和使用。

    大优惠 Spring MVC学习指南(第2版)2017.pdf

    作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC...

    [免费]Spring MVC学习指南(高清)

    作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC...

    SpringMVC笔记.zip

    使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。SpringMVC 已经成为目前最主流的 MVC...

    SparkWeb:SparkWeb是一个超轻量级的Java Web MVC框架

    Sparkweb 是一个超轻量级的简易高效的 Java WEB 开发框架,其设计思想结合了目前主流的 Spring、Struts2、Playframework、Nodejs-Expressjs、Ruby On Rails 等框架的优秀地方,完美支持 RESTful设计。 二、Sparkweb ...

    高效,小巧的开源JAVA WEB 开发框架-Nutz (源码,开发文档)

    Mvc 框架 -- Nutz.Mvc Json 解析器 -- Nutz.Json 更多的简化Java语法的函数和类 -- Nutz.Lang 以及 Nutz.Castors 不依赖任何第三方 Jar 包,从而便于程序员建立开发环境,部署,甚至重新编译 Nutz 的源代码。 不幸的...

    Spring MVC学习指南

    作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。, 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC...

    j2ee+spring mvc+Mybatis+mysql+easy ui+Jquery主流框架集成后台管理系统

    使用Java平台,采用SpringMVC+Mybatis等主流框架 数据库:使用免费MYSQL 前端:使用Jquery和Easyui技术.界面清晰简洁,易操作. 权限:对菜单,按钮控制.仅展示有权限的菜单和按钮. 拦截:对所有无权限URL进行拦截,防止...

    JavaWeb图书管理系统(MVC框架).zip

    技术栈概览:涵盖了Spring、SpringMVC、MyBatis等主流JavaWeb框架的使用,以及MySQL数据库的管理。 项目模块解析:按照实际项目结构,分模块介绍了后台管理、用户权限管理、数据报表生成等功能的具体实现。 代码与...

Global site tag (gtag.js) - Google Analytics