Struts其实就是MVC的代名词,那么提到MVC就不得不提早期的ModelⅠ。那时候JSP页面中混杂了大量的JAVA Scriptlet脚本语句,为了可维护性考虑,有人提出了ModelⅡ,也即现在的MVC模式。所以可以看出来,MVC的提出是建立在早期JSP页面中混杂了大量的JAVA Script脚本语句的前提之下的。在这种情况下MVC的出现让JSP的世界变得干净许多。
虽说是MVC框架,其实有人也指出,Struts系的框架只能算是一种伪MVC。为什么这么说呢?因为它没有MVC中的最核心的部分:事件控制,其实Struts看起来更像是一种控制转发框架。那么这种跳转是否是必须的呢?
自从2005年开始,Ajax开始崭露头角,到现在为止,不谈Ajax已经到了成熟应用的地步,但回头再看MVC,是否可以有另外一种更优雅、清晰的思路来代替早期的ModelⅠ呢?
先来看一小段代码:
<sky:init method="com.sky.platform.Login.init">
<html>
<head>
<title>${Title}</title>
<script>
Sky.onReady(function(){
$("btnLogin").on("click", function login(){
var dc = Form.getData("loginForm");
Server.sendRequest("com.sky.platform.Login.submit",dc,function(response){
if(response&&response.Status==0){
alert(response.Message);
}
});
});
});
</script>
</head>
<body>
<form id="loginForm" method="post" style=" display:block;height:100%;">
<input name="UserName" type="text" />
<input name="Password" type="password" />
<input id="btnLogin" type="button"/>
</form>
</body>
</html>
</sky:init>
看看这段代码是怎么解决早期Model 1的混乱的
<sky:init method="com.sky.platform.Login.init">
com.sky.platform.Login类可以看做是这个页面的后台绑定类,其思路来源于Aspx.Net
init方法用来做页面的初始化动作
页面中像这种需要获取的数据就可以这样来实现:
${Title}
Struts的控制转发很重要的一部分功能就是获取数据放置页面属性范围中,而现在转而用这种方式就可以实现Strtus的获取数据功能。
有人会问,像列表之类的,你一个${}怎么能够实现呢?答案是:我们可以在前台实现对应的Ajax风格的列表控件,如此之类......
像表单其他我们也可以通过Ajax直接提交后台绑定类的方法的方式来实现
Server.sendRequest("com.sky.platform.Login.submit",dc,function(response){
if(response&&response.Status==0){
alert(response.Message);
}
});
这种编程思想与Struts系MVC框架的本质的区别就是完全抛弃了其需要的控制转发配置,因为Struts用来配置控制转发的文件本身只是为了实现其MVC的功能而存在的,那么现在我们已经有了一种替代的解决方案来解决早期的Model1的混乱局面,那么Struts系MVC框架的控制转发是否还有存在的必要呢?
其实这个思路的类似解决方案就是JSF,但是JSF并没有像ASPX.Net那样完全使用后台绑定类的概念,其并没有抛弃类Struts的路由导航配置。
这只是个人观点,欢迎大家讨论、斧正,提出自己的见解!
刚发现两个好贴,附上链接,供大家一起探讨
MVC的迷思:
http://www.iteye.com/topic/6284
jsplet:对Model 2模式的批判:
http://www.iteye.com/topic/11726
分享到:
相关推荐
MVC模式和Struts框架
自定义Struts 2 MVC框架的过程有助于深入理解其工作原理,从而更好地应用和优化项目。 首先,我们来详细探讨Struts 2的核心组件和它们的角色: 1. **模型(Model)**:模型是应用的核心,负责处理业务逻辑和数据。在...
Struts是Apache软件基金会的一个开源项目,它最初在2000年代初期流行起来,是Java社区中最早的MVC框架之一。Struts的核心是ActionServlet,它作为请求处理器,通过配置文件(struts-config.xml)来管理动作映射。...
Struts开源MVC框架,让你更加了解Struts的开源框架的运用
MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑
**标题解析:** "重构mvc实现struts框架" 这个标题表明了我们要探讨的主题是关于软件开发中的重构过程,特别关注的是如何从一个简单的MVC(Model-View-Controller)模型出发,逐步演进到实现Struts框架的初步形态。...
### 基于Struts框架MVC模式应用的实现 #### 概述 本文主要探讨Struts框架在MVC(Model-View-Controller)模式下的应用实现,旨在为读者提供一个深入理解Struts框架及其在Web开发中作用的机会。通过详细解析MVC模式...
Struts框架是一个成熟的开源MVC框架,它利用Servlet、JSP和自定义标签库等技术来实现MVC架构。Struts通过以下组件来实现MVC模式: - **ActionServlet**:作为控制器的核心,负责接收HTTP请求并将请求转发给适当的...
【标题】基于MVC Struts框架开发的小型WEB 在Web开发领域,MVC(Model-View-Controller)设计模式是一种广泛采用的架构,而Struts框架是Java平台上的一个实现MVC模式的重要工具。本项目是一个基于MVC Struts框架...
Struts 1.2.9 是一个经典的Java Web开发框架,属于MVC(Model-View-Controller)架构模式的一种实现。MVC模式是软件工程中用于分隔应用程序数据逻辑、用户界面和应用流程控制的常见设计模式。在这个框架中,模型负责...
然而,随着新的技术如Spring MVC的出现,Struts2逐渐被许多开发者认为是过时的技术,因为它相对较重且配置较为繁琐,但作为一个历史性的技术,它对于理解现代Web框架的设计原理仍然具有重要意义。
### 基于MVC的Struts框架初探:深入解析与应用 #### 引言:框架的意义与必要性 在JavaWeb应用的早期发展阶段,JSP文件扮演着多重角色,包括业务逻辑处理、控制流程管理以及HTML页面的生成。这种高度耦合的设计导致...
Struts1.2.9是Apache软件基金会的一个开源项目,它是Model-View-Controller(MVC)设计模式在Java Web应用程序中的实现。...通过阅读源码,开发者还可以学习到如何设计和实现一个轻量级的MVC框架。
Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...
在IT行业中,构建一个自定义的类似于Struts的MVC框架是一项挑战性的任务,它涉及到对Web开发模式的深入理解,以及对Java、JSP、XML解析等技术的熟练运用。Struts作为Java EE领域中著名的MVC框架,其设计思想和实现...
JavaEE经典MVC框架Struts是企业级应用开发中的一个重要组成部分,它为构建基于Web的应用程序提供了一种结构化的解决方案。MVC(Model-View-Controller)模式是一种设计模式,用于将应用程序的业务逻辑、用户界面和...
基于MVC模式的Struts框架的研究与应用,李梅,宋泽海,随着面向对象技术、Web技术和J2EE技术的发展,软件框架技术在Web开发中得到了广泛应用。Struts作为一个开源的Web层框架,是MVC及J2EE若干�
### 基于MVC模式的Struts框架中Ajax研究与应用 #### 一、引言 随着互联网技术的发展,Web应用程序的需求日益增加,对于高效、可维护的应用框架的需求也愈发强烈。MVC(Model-View-Controller)设计模式作为构建Web...
"mystruts"是一个简化版的MVC框架,其设计灵感来源于经典的Struts1.x框架,旨在为开发者提供一个轻量级的解决方案,便于理解和实践MVC思想。 【描述】"实现mvc思想,部分代码参考struts1.x" MVC思想的核心在于将...