`
xiamizy
  • 浏览: 91804 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
78437efc-ad8e-387c-847f-a092d52e81a6
spring framew...
浏览量:4936
社区版块
存档分类
最新评论

Struts2+Spring2+Hibernate3 web应用示例(六)

 
阅读更多
配置Struts2

Struts的配置文件都会在web.xml中注册的。

a) Struts的配置文件如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>

<struts>

<constantname="struts.enable.DynamicMethodInvocation"value="false"/>
<constantname="struts.devMode"value="true"/>
<constantname="struts.i18n.encoding"value="GBK"/>

<!--Addpackageshere-->

</struts>

Src/struts.xml

b) struts_book.xml配置文件如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>

<struts>

<packagename="products"extends="struts-default">
<!--default-interceptor-refname="validation"/-->
<!--Addactionshere-->
<actionname="list"class="bookAction"method="list">
<result>/list.jsp</result>
</action>

<actionname="delete"class="bookAction"method="delete">
<resulttype="redirect">list.action?queryMap=${queryMap}</result>
</action>

<actionname="*"class="com.sterning.commons.AbstractAction">
<result>/{1}.jsp</result>
</action>

<actionname="edit"class="bookAction"method="load">
<result>/editBook.jsp</result>
</action>

<actionname="save"class="bookAction"method="save">
<interceptor-refname="params"/>
<interceptor-refname="validation"/>
<resultname="input">/editBook.jsp</result>
<resulttype="redirect">list.action?queryMap=${queryMap}</result>

</action>
</package>
</struts>

文件中的<interceptor-ref name="params"/>,使用了struts2自己的拦截器,拦截器在AOPAspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

Struts 2已经提供了丰富多样的,功能齐全的拦截器实现。大家可以到struts2-all-2.0.6.jarstruts2-core-2.0.6.jar包的struts-default.xml查看关于默认的拦截器与拦截器链的配置。

struts-default.xml中已经配置了大量的拦截器。如果您想要使用这些已有的拦截器,只需要在应用程序struts.xml文件中通过“<include file="struts-default.xml" />”struts-default.xml文件包含进来,并继承其中的struts-default包(package),最后在定义Action时,使用“<interceptor-ref name="xx" />”引用拦截器或拦截器栈(interceptor stack)。一旦您继承了struts-default包(package),所有Action都会调用拦截器栈 ——defaultStack。当然,在Action配置中加入“<interceptor-ref name="xx" />”可以覆盖defaultStack

作为框架(framework,可扩展性是不可或缺的,因为世上没有放之四海而皆准的东西。虽然,Struts 2为我们提供如此丰富的拦截器实现,但是这并不意味我们失去创建自定义拦截器的能力,恰恰相反,在Struts 2自定义拦截器是相当容易的一件事。所有的Struts 2的拦截器都直接或间接实现接口com.opensymphony.xwork2.interceptor.Interceptor。除此之外,大家可能更喜欢继承类com.opensymphony.xwork2.interceptor.AbstractInterceptor


九、 配置Spring

1Spring的配置文件如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<!--dataSourceconfig-->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
<propertyname="driverClassName"value="com.mysql.jdbc.Driver"/>
<propertyname="url"value="jdbc:mysql://localhost:3306/game"/>
<propertyname="username"value="root"/>
<propertyname="password"value="root"/>
</bean>

<!--SessionFactory-->
<beanid="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<propertyname="dataSource">
<refbean="dataSource"/>
</property>
<propertyname="configLocation">
<value>classpath:com/sterning/bean/hibernate/hibernate.cfg.xml</value>
</property>
</bean>

<!--TransactionManager不过这里暂时没注入-->
<beanid="transactionManager"
class
="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>

<!--DAO-->
<beanid="booksDao"class="com.sterning.books.dao.hibernate.BooksMapDao">
<propertyname="sessionFactory">
<refbean="sessionFactory"/>
</property>
</bean>

<!--Services-->
<beanid="booksService"class="com.sterning.books.services.BooksService">
<propertyname="booksDao">
<refbean="booksDao"/>
</property>
</bean>

<beanid="pagerService"class="com.sterning.commons.PagerService"/>

<!--view-->
<beanid="bookAction"class="com.sterning.books.web.actions.BooksAction"singleton="false">
<propertyname="booksService">
<refbean="booksService"/>
</property>
<propertyname="pagerService">
<refbean="pagerService"/>
</property>
</bean>

</beans>

WebRoot/WEB-INF/srping-content/applicationContent.xml

2Struts.properties.xml

本来此文件应该写在struts 配置一节,但主要是考虑这体现了集成spring的配置,所以放在spring的配置这里来讲。

struts.objectFactory=spring
struts.locale=zh_CN
struts.i18n.encoding=GBK

struts.objectFactoryObjectFactory 实现了com.opensymphony.xwork2.ObjectFactory接口(spring)。struts.objectFactory=spring,主要是告知Struts 2运行时使用Spring来创建对象(如Action等)。当然,SpringContextLoaderListener监听器,会在web.xml文件中编写,负责SpringWeb容器交互。

struts.localeThe default locale for the Struts application默认的国际化地区信息。

struts.i18n.encoding:国际化信息内码。

十、 Web.xml配置


<?xmlversion="1.0"encoding="GB2312"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
>

<web-app>
<display-name>图书管理系统</display-name>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<!--ContextConfigLocation-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-context/applicationContext.xml</param-value>
</context-param>

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.sterning.commons.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,struts.xml,struts_books.xml</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!--ListenercontextConfigLocation-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--Listenerlog4jConfigLocation-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

<!--TheWelcomeFileList-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

Struts 2中,配置有少许改变,最明显的是分发器(dispatcher)已由Servlet转为Servlet Filter, 其配置和Servlet一样简单。和Servlet配置一样,Filter配置中定义了Filter的名称(作为引用)和类名。Filter Mapping通过URI和名称匹配来调用相应的Filter。默认情况下,扩展名为“.action”,这是在default.properties文件(在Struts 2 JAR文件里)的“struts.action.extension”属性定义的。

待续.....
分享到:
评论

相关推荐

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    Struts2+Spring2+Hibernate3 web应用示例

    Struts2+Spring2+Hibernate3 web应用示例

    博客Struts2+Spring2+Hibernate3 web应用示例

    这个“博客Struts2+Spring2+Hibernate3 web应用示例”旨在展示如何将这三个框架有效地结合在一起,以实现一个完整的后端管理系统,比如书管理应用。 Struts2是Action导向的MVC框架,负责处理HTTP请求,提供控制器层...

    Struts2+Spring3+Hibernate4示例

    Struts2、Spring3和Hibernate4是Java Web开发中的三个核心框架,它们分别负责MVC(Model-View-Controller)架构中的控制层、业务层和服务层。本示例结合这三个框架,提供了一种完整的三层架构实现,以提高开发效率和...

    轻量级Java EE企业应用实战(第4版) Struts 2+Spring 4+Hibernate整合开发 光盘 源码

    《轻量级Java EE企业应用实战(第4版)》这本书深入探讨了Struts 2、Spring 4和Hibernate这三大框架的整合开发,旨在帮助读者掌握如何在实际项目中高效构建Java EE应用。SSH(Struts 2、Spring、Hibernate)是Java ...

    Struts2+Hibernate+Spring基于单表的增删改查code

    这个“Struts2+Hibernate+Spring基于单表的增删改查code”项目是一个典型的Java Web应用程序示例,用于教学初学者如何在实际开发中运用这三个框架来实现对数据库中单个表的操作。 **Struts2** 是一个MVC(Model-...

    Struts_2+Spring_3+Hibernate整合开发.part5.rar

     《轻量级Java EE企业应用实战:Struts2+Spring3+Hibernate整合开发(第3版)》介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。其中Struts 2升级到2.2.1,Spring升级到3.0.5,Hibernate升级到了...

    struts2+spring3+hibernate整合

    ### Struts2+Spring3+Hibernate整合 #### 一、简介与背景 本文将详细介绍如何实现Struts2、Spring3和Hibernate三个框架的整合。这种整合通常被称为SSH(Struts2-Spring-Hibernate)框架集成,是Java Web开发中非常...

    struts2+spring2.5+Hibernate3.2整合示例

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合应用极大地提升了开发效率和项目的可维护性。在本示例中,我们将探讨如何将这三个框架集成在一起,实现一个完整的MVC(模型-视图-控制器)架构。 ...

    Struts2.0+Spring2.0+Hibernate3.1登录及增删改查的完整演示示例

    应广大网友需求,自己抽了点时间写了一个Struts2.0+Spring2.0+Hibernate3.1的登录及增删改查的完整演示示例,以此奉献给大家,由于本人水平有限,有写的不好的地方还望大家多提宝贵意见,如果有不明白的地方请关注我的...

    Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3 开发示例

    Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例代码。 其中包括如下文件: 介绍文档 Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例.docx Eclipse工程文件 SSH2.zip Zip包是Eclipse...

Global site tag (gtag.js) - Google Analytics