下面的内容只是对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框架的主要区别就是对表现层的处理