下面的內容只是對web層的對比很浮淺spring的東西很大部分引自xiaxin的<<spring開發指南>>裡面如果有錯將在學習過程中修正
Spring與struts比較
webxml
這個文件中的內容是jee定義的整體上看沒有什麼變化 主要描述了系統的入口點映射以及配置文件
struts如下
程序代碼
<servlet>
<servletname>action</servletname>
<servletclass>orgapachestrutsactionActionServlet</servletclass>(入口點)
<initparam>
<paramname>config</paramname>
<paramvalue>/WEBINF/strutsconfigxml /WEBINF/strutsconfigxml</paramvalue>(struts的配置文件)
</initparam>
</servlet>
<servletmapping>
<servletname>action</servletname>
<urlpattern>*do</urlpattern>(URL映射)
</servletmapping>
Spring mvc框架如下代碼如下
<servlet>
<servletname>Dispatcher</servletname>
<servletclass>orgspringframeworkwebservletDispatcherServlet</servletclass>(入口點)
<initparam>
<paramname>config</paramname>
<paramvalue>/WEBINF/springconfigxml</paramvalue>
</initparam>
</servlet>
<servletmapping>
<servletname>Dispatcher</servletname>
<urlpattern>*do</urlpattern>(URL映射)
</servletmapping>
config file
Struts的默認配置文件名為:strutsconfigxml
Spring的默認配置文件名為:${ServletName}servletxml
這兩個配置文件可以看出struts與spring在mvc
先看strutsconfigxml
源代碼
<strutsconfig>
<formbeans>
<formbean name=logininfo type=bizsuncorestrutsformLoginInfo/>(給數據對象一個名子它的值被自動從web的form中的填入可以繼承validationForm等)
</formbeans>
<globalforwards>
<forward name=failure path=/failurejsp />
<forward name=success path=/successjsp />(全局性的跳轉)
<forward name=message path=/errorjsp />
</globalforwards>
<actionmappings>
<action name=logininfo type=bizsuncorestrutsactionLoginAction validate=false scope=request path=/loginAction>(請求/處理單元映射)
<forward name=success_view path=/jsp/mainjsp />
<forward name=fail_view path=/jsp/loginfailjsp />
(頁面導航)
</action>
</actionmappings>
<messageresources parameter=bizsuncorescmwebresourceApplicationResources />(國際化)
<messageresources key=test parameter=bizsuncorescmwebresourceApplicationResourcesTest />(國際化的綁定形式)
<plugin className=orgapachestrutsvalidatorValidatorPlugIn>
<setproperty value=/WEBINF/validatorrulesxml/WEBINF/validationxml property=pathnames />(驗證)
</plugin>
</strutsconfig>
再看看springconfigxml
程序代碼
<beans>
<!Definition of View Resolver >
<!把輸出結果與界面相結合這一部分在struts中可以說沒有的也正因如此spring框架才可以用很多MVC結構吧>
<bean id=viewResolver class=orgspringframeworkwebservletviewInternalResourceViewResolver>
<property name=viewClass>
<value>
orgspringframeworkwebservletviewJstlView(采用哪種表現層模板)
</value>
</property>
<property name=prefix>(顯示所用資源的前綴沒試過可不可以有多種前綴或者後綴)
<value>
/jsp/
</value>
</property>
<property name=suffix>(後綴)
<value>jsp</value>
</property>
</bean>
<!上面是對表現的定義>
<!下面是對請求的處理>
<!Request Mapping >
<bean id=urlMapping class=orgspringframeworkwebservlethandlerSimpleUrlHanderMapping>
<property name=mappings>
<props>
<prop key=/logindo>LoginAction</prop>(請求/處理單元映射)
</props>
</property>
</bean>
<!Action Definition >
<bean id=LoginAction class=bizsuncorespringactionLoginAction>
<property name=commandClass>
<value>bizsuncorespringformLoginInfo</value>(數據對象struts用beanname定義的東西)
</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框架的主要區別就是對表現層的處理
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28558.html