`
mmdev
  • 浏览: 13131941 次
  • 性别: 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,少集成一个框架毕竟麻烦少一些。

分享到:
评论

相关推荐

    mvc框架性比较

    Struts、Spring MVC等是主流的MVC框架,它们提供了丰富的功能,简化了开发流程,但也带来了性能上的差异。本文将深入探讨几个主流MVC框架在性能上的表现。 首先,我们关注的是纯JSP的表现。作为最基础的处理方式,...

    开发者突击Java Web主流框架

    2. **Spring框架**:Spring是Java Web开发中最广泛使用的框架之一,它不仅提供了MVC框架,还包含依赖注入(DI)和面向切面编程(AOP)等功能,支持事务管理、数据访问、安全控制等。 3. **Struts框架**:Apache ...

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

    Java 主流开发框架演变历程 Java 主流开发框架的演变历程是 Java 开发者不可或缺的知识点。从早期的 JSP+Servlet+JavaBean 到现在的 SpringBoot,Java 主流开发框架经历了多次演变。 一、JSP+Servlet+JavaBean ...

    mvc框架开发租房网站

    本篇文章将探讨使用MVC框架开发租房网站的关键技术点,包括对Servlet、JSP、JavaBean以及自定义MVC框架的理解。 首先,我们从Servlet开始。Servlet是Java Web应用的基础,它是一个Java类,用于处理HTTP请求并生成...

    javaSSH框架javaSSH框架 整合

    JavaSSH框架,通常指的是在Java开发中用于构建服务器端应用的一种技术栈,它结合了Struts、Spring和Hibernate这三个主流的开源框架。Struts提供了MVC(Model-View-Controller)设计模式,Spring则是一个全面的后端...

    学生籍贯管理系统,基于Java SSM框架开发(spring、 spring mvc、 mybatis)

    首先,SSM框架是Java Web开发中的主流选择,它由Spring、Spring MVC和MyBatis三个组件构成。Spring作为基础框架,提供了依赖注入和面向切面编程,简化了应用的复杂性。Spring MVC作为Spring的Web层,负责处理HTTP...

    Java框架API大全.rar

    本压缩包“Java框架API大全.rar”包含了三大主流Java Web框架——Spring、Hibernate、Struts的完整API文档,为开发者提供了详尽的参考资料。 首先,Spring框架是Java企业级应用的核心框架,以其依赖注入(DI)和...

    设计 REST 风格的 MVC 框架

    因此,设计一个原生支持REST风格的MVC框架,以适应现代Web开发的需求,变得尤为重要。 #### REST风格的MVC框架设计原理 在设计REST风格的MVC框架时,关键在于如何将URL直接映射到具体的控制器方法上,而不是像传统...

    开发者突击:Java Web主流框架整合开发源代码

    【开发者突击:Java Web主流框架整合开发源代码】是一份专为Java Web开发人员准备的实践教程,旨在帮助他们深入理解和应用J2EE、Struts、Hibernate和Spring四大主流框架进行整合开发。这个资源包包含了丰富的源代码...

    开发者突击:Java Web 主流框架整合开发 源码资源说明

    Struts是Java Web应用的MVC框架,用于构建动态、可维护的Web应用程序。文件中提到的版本分别为1.2.9和2.0.9,均可从Apache官方网站下载。Struts 1.2.9的下载链接为...

    自定义Java开发框架

    2. **MVC模式**:大多数Java框架都基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据展示和用户交互分离,使得代码组织清晰,易于维护。开发者可以专注于业务逻辑的实现,而无需关心视图层和控制层的细节...

    ssh2 java web 主流框架 整合

    本教程将深入探讨如何整合这些主流框架,以构建高效、灵活且可扩展的Java Web应用程序。 首先,Spring框架作为整个应用的核心,提供依赖注入(DI)和面向切面编程(AOP)的能力,使得代码更加松耦合,易于测试和...

    开发者突击_Java+Web主流框架整合开发_J2EE+Struts+Hibernate+Spring+源代码

    Spring不仅包含了IoC(Inversion of Control)容器,负责管理对象的生命周期和依赖关系,还提供了大量其他功能,如数据访问抽象、Web MVC框架、事务管理、安全控制等。Spring框架的模块化设计使得开发者可以根据需要...

    Java框架Java框架Java框架

    本文将深入探讨三个主流的Java框架:Spring、Hibernate和Struts,以及它们的核心特性和使用。 **Spring框架** Spring是一个全面的企业级应用框架,它在Java开发中扮演着核心角色。其主要特点包括: 1. **Spring ...

    java框架核心技术笔记

    Java框架是Java开发中的核心工具,它们为开发者提供了一套预定义的结构和模式,使得在构建复杂的Web应用、企业级应用或者桌面应用时能够更加高效。这些框架大大简化了代码编写,提高了代码的可复用性和可维护性。本...

    java 三大框架面试题(SSH)

    Java 三大框架,即Struts、Hibernate和Spring,是Java Web开发中常用的技术组合,用于构建高效、可维护的企业级应用程序。这些框架各有其特点,共同构建了一个强大的MVC(Model-View-Controller)架构。 Struts是...

    MVC新闻发布系统 java

    4. **Spring MVC框架**:Spring MVC是Java Web开发中的主流框架,它简化了MVC的实现,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。在MVC新闻发布系统中,Spring MVC负责调度请求、处理响应、装配模型数据...

    Java框架SSH实例小型企业网站

    【SSH框架整合实例】是Java开发中的一个重要主题,它涵盖了Spring、Struts和Hibernate三个主流的开源框架。这个实例是一个小型企业网站的实现,虽然功能有限,但足够用于初学者学习和理解这些框架的集成与应用。 ...

Global site tag (gtag.js) - Google Analytics