Asktalk

          天行健,君子以自強不息!
          posts - 21, comments - 79, trackbacks - 0, articles - 2
            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          Spring Web框架與Struts的區別

          Posted on 2007-12-25 02:23 Asktalk 閱讀(4326) 評論(0)  編輯  收藏 所屬分類: Jdbc/Hibernate3/EJB3

           

          下面是從struts的角度來談談spring自帶的web框架的使用。
          當然,我們在配置
          web框架前,需要把spring配置好,這里就不多說了。

          1.web框架核心servletweb.xml中的配置。


           

           1<servlet>  
           2<servlet-name>Dispatcher</servlet-name>  
           3<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <init-param>   
           4<param-name>contextConfigLocation</param-name>   <param-value>/WEB-INF/Config.xml</param-value>
           5  </init-param> 
           6</servlet>  
           7
           8<servlet-mapping>  
           9<servlet-name>Dispatcher</servlet-name>  
          10<url-pattern>*.do</url-pattern>
          11 </servlet-mapping>
          12

           

          如果沒有配置config.xml文件,那么其默認的配置文件為[ servlet-name ]-servlet.xml 。也就是我們這個配置的默認配置文件是Dispatcher-servlet.xml

          2.web框架的xml配置

          spring web框架與struts最大的不同就是spring web框架根據分工,把每一種功能都定義為一種組件,所以在開發過程中需要配置的東西就非常多;Spring中分為幾個角色:

          核心控制器,就是web框架的主 servlet

          業務控制器,也就是struts中的action對象;

          映射處理器,定義了訪問路徑如何與webxml中的bean相匹配,就是定義了一種策略;

          視圖和視圖解析器,視圖就是jstl,velocity,xslt等,視圖解析器定義了action最終導航頁面的策略;

          模型,就是struts MVC結構中的model

          Command對象,類似于struts中的formBean

          2.1 Spring web框架與struts框架的區別

          下面列出了一些。例如,

          Web框架要攔截*.do路徑,那么*.do如何與我們下面的bean匹配,就需要一個映射控制器。在struts中就是名字相同的匹配,不需要配置。

          action最后要導向到不同的頁面,在struts中我們用的是默認的不需要在xml文件中配置,在spring中就需要配置視圖解析器。

          下面代碼中,ActioncommandClass配置的就是類似于struts中的formBean對象。

           1<?xml version="1.0" encoding="UTF-8"?>
           2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
           3 "http://www.springframework.org/dtd/spring-beans.dtd">
           4<beans>
           5 <!--Definition of View Resolver -->
           6 <bean id="viewResolver"
           7  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
           8  <property name="viewClass"> 
           9   <value>org.springframework.web.servlet.view.JstlView</value>
          10  </property>
          11  <property name="prefix">
          12   <value>/WEB-INF/view/</value>
          13  </property>
          14  <property name="suffix">
          15   <value>.jsp</value>
          16  </property>
          17 </bean>
          18  
          19<!—就是我們上面說的映射控制器 -->
          20 <!--Request Mapping -->
          21 <bean id="urlMapping"
          22  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          23  <property name="mappings">
          24   <props>
          25    <prop key="/login.do">LoginAction</prop>
          26   </props>
          27  </property>
          28 </bean>
          29 
          30<!---類似于struts的action配置-->
          31 <!---Action Definition-->
          32 <bean id="LoginAction"
          33  class="com.maxway.action.LoginAction">
          34  <property name="commandClass">
          35   <value>com.maxway.action.LoginInfo</value>
          36  </property>
          37  <property name="fail_view">
          38   <value>loginfail</value>
          39  </property>
          40  <property name="success_view">
          41   <value>main</value>
          42  </property>
          43 </bean>
          44</beans>
          45


           

          3.代碼的編寫

          Action不外乎繼承一些現成的類,來實現我們view部分的業務。
          作者:http://www.aygfsteel.com/asktalk

          主站蜘蛛池模板: 闵行区| 桐乡市| 双流县| 西安市| 永康市| 三门峡市| 昭苏县| 庆城县| 保定市| 阳原县| 远安县| 枣庄市| 富阳市| 桃园县| 千阳县| 津市市| 霍邱县| 墨玉县| 登封市| 河北省| 监利县| 繁峙县| 永城市| 读书| 咸宁市| 揭西县| 高台县| 洮南市| 郯城县| 广安市| 富民县| 琼中| 杂多县| 凤城市| 通州区| 新乐市| 澄城县| 施甸县| 河源市| 沾化县| 东阳市|