`

Spring MVC与struts比较

阅读更多

下面的内容只是对web层的对比,很浮浅,spring的东西,很大部分引自xiaxin的<<spring开发指南>>,里面如果有错将在学习过程中修正.

    Spring与struts比较

    1、web.xml

    这个文件中的内容是j2ee定义的,整体上看没有什么变化, 主要描述了系统的入口点,映射,以及配置文件。

    struts如下:

    程序代码:


    <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>(入口点)

    <init-param>

    <param-name>config</param-name>

    <param-value>/WEB-INF/struts-config.xml, /WEB-INF/struts-config1.xml</param-value>(struts的配置文件)

    </init-param>

    </servlet>

    <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>(URL映射)

    </servlet-mapping>

    Spring mvc框架如下:代码如下:

 

    <servlet>

    <servlet-name>Dispatcher</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>(入口点)

    <init-param>

    <param-name>config</param-name>

    <param-value>/WEB-INF/spring-config.xml</param-value>

    </init-param>

    </servlet>

    <servlet-mapping>

    <servlet-name>Dispatcher</servlet-name>

    <url-pattern>*.do</url-pattern>(URL映射)

    </servlet-mapping>

    2、config file

    Struts的默认配置文件名为:struts-config.xml

    Spring的默认配置文件名为:${ServletName}-servlet.xml

    这两个配置文件可以看出struts与spring在mvc

    先看struts-config.xml

    源代码:

 

    <struts-config>

    <form-beans>

    <form-bean name="logininfo" type="biz.suncore.struts.form.LoginInfo"/>(给数据对象一个名子,它的值被自动从web的form中的填入,可以继承validationForm等)

    </form-beans>

    <global-forwards>

    <forward name="failure" path="/failure.jsp" />

    <forward name="success" path="/success.jsp" />(全局性的跳转)

    <forward name="message" path="/error.jsp" />

    </global-forwards>

    <action-mappings>

    <action name="logininfo" type="biz.suncore.struts.action.LoginAction" validate="false" scope="request" path="/loginAction">(请求/处理单元映射)

    <forward name="success_view" path="/jsp/main.jsp" />

    <forward name="fail_view" path="/jsp/loginfail.jsp" />

    (页面导航)

    </action>

    </action-mappings>

    <message-resources parameter="biz.suncore.scm.web.resource.ApplicationResources" />(国际化)

    <message-resources key="test" parameter="biz.suncore.scm.web.resource.ApplicationResourcesTest" />(国际化的绑定形式)

    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">

    <set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />(验证)

    </plug-in>

    </struts-config>

    再看看spring-config.xml

    程序代码:

 


    <beans>

    <!--Definition of View Resolver -->

    <!--把输出结果与界面相结合,这一部分在struts中可以说没有的,也正因如此spring框架才可以用很多MVC结构吧-->

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="viewClass">

    <value>

    org.springframework.web.servlet.view.JstlView(采用哪种表现层模板)

    </value>

    </property>

    <property name="prefix">(显示所用资源的前缀,没试过可不可以有多种前缀或者后缀)

    <value>

    /jsp/

    </value>

    </property>

   <property name="suffix">(后缀)

    <value>.jsp</value>

    </property>

    </bean>

    <!--上面是对表现的定义-->

    <!--下面是对请求的处理-->

    <!--Request Mapping -->

    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHanderMapping">

    <property name="mappings">

    <props>

    <prop key="/login.do">LoginAction</prop>(请求/处理单元映射)

    </props>

    </property>

    </bean>

    <!--Action Definition -->

    <bean id="LoginAction" class="biz.suncore.spring.action.LoginAction">

    <property name="commandClass">

    <value>biz.suncore.spring.form.LoginInfo</value>(数据对象,struts用bean-name定义的东西)

    </property>

    <property name="fail_view">

    <value>loginfail</value>(页面导航,由于viewResolver的定义,如果是大项目的话,这儿就要少写几个字,但对自动生成来讲就没什么啦)

    </property>

    <property name="success_view">

    <value>main</value>

    </property>

    <!--Request Mapping 和Action Definition的动做在struts中用action标签全部做到,功能相当(就我目前了解:)>

    </bean>

    </beans>

 

    上面的分析可以看出:struts与spring的mvc框架的主要区别就是对表现层的处理。

 

分享到:
评论
2 楼 cn_arthurs 2010-03-09  
不知道楼主,在spring是如何做类似struts可以分模块的
1 楼 myiris_gm 2008-07-30  
                             

相关推荐

    spring webmvc struts 2.5 很难找的依赖包

    spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 ...

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    **Struts2与Spring MVC比较:** 1. **灵活性**:Spring MVC允许更多的自定义,如自定义拦截器、视图解析器,而Struts2的扩展性相对弱些。 2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2...

    Spring+Spring MVC+Struts+hibernate开发摄影平台完整版系统

    《构建摄影平台:Spring+Spring MVC+Struts+Hibernate整合详解》 在现代Web开发领域,Spring框架以其灵活性和强大的企业级应用支持而备受青睐。本项目“Spring+Spring MVC+Struts+Hibernate开发摄影平台完整版系统...

    spring-webmvc-struts.jar aspectjweaver.jar

    2. Struts与Spring的整合,包括Action的配置、Service注入到Action、以及结果的处理。 3. 使用AspectJ的注解来定义切面,如`@Aspect`、`@Pointcut`、`@Before`、`@After`等。 4. 切面的织入策略,包括编译时织入和...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    "spring-webmvc-struts"可能指的是Spring与Struts的集成包,Struts是另一个流行的Java Web MVC框架。这个库可能包含了一些桥接代码,帮助开发者将Spring的IoC(Inversion of Control,控制反转)和AOP功能与Struts的...

    Spring3-MVC与Struts2.x比较.pdf

    下面我们将详细探讨Spring MVC的核心组件、工作流程以及与Struts2.x的比较。 1. **Spring MVC 核心组件** - **DispatcherServlet**:Spring MVC 的核心是DispatcherServlet,它作为一个前端控制器,负责接收请求...

    spring-webmvc-struts-2.5.6-sources.jar

    spring-webmvc-struts-2.5.6-sources

    Spring3-MVC与Struts2.x比较.docx

    Spring MVC 和 Struts2.x 是两个广泛使用的Java Web开发中的MVC框架,它们各自具有不同的特点和优势。这里我们将深入探讨这两个框架的核心组件、工作原理以及它们之间的对比。 首先,让我们了解一下Spring MVC。...

    Spring MVC 教程快速入门 深入分析

    相较于Struts2,Spring MVC避免了一些可能导致性能下降的特性,如值栈、OGNL表达式等。 二、Spring MVC核心类与接口:Spring MVC架构中包含许多核心组件,如DispatcherServlet、HandlerMapping、Controller、...

    struts VS spring mvc

    ### Struts 与 Spring MVC 的对比分析 #### Struts 概览 **Struts** 是一个基于 **MVC(Model-View-Controller)** 设计模式的开源框架,由 Apache 软件基金会维护,主要开发者为 Craig R. McClanahan。作为 Java ...

    Struts和Spring两种MVC框架究竟有什么不同呢?

    Spring MVC作为其Web层的一部分,与Struts相比,更加轻量级和灵活。Spring MVC通过DispatcherServlet作为入口点,处理HTTP请求,并通过配置或注解定义控制器(@Controller)。模型数据通常通过模型对象(Model或...

    spring mvc 的入门级资料

    1. 轻松学习:Spring MVC 的学习难度小于 Struts2 2. 高性能:Spring MVC 很容易就可以写出性能优秀的程序 3. 灵活性高:Spring MVC 的灵活性非常高,可以满足不同的需求 Spring MVC 是一个强大、灵活、Easy-to-use...

    Spring3.0MVC 实用教程(高淇)

    Spring MVC 提供了一种可插拔的架构,允许开发者选择使用内置的 Spring Web 框架,或者与其他 Web 框架如 Struts 结合使用。通过策略接口,Spring MVC 具有高度可配置性,支持多种视图技术,如 JSP、Velocity、Tiles...

Global site tag (gtag.js) - Google Analytics