struts2 +hibernate3.2+spring2.0

自学struts2有段时间了 今天用完全手写的方式整合了struts2 +hibernate3.2+spring2.0

其中的一些技巧,和遇到的异常总结如下:(其实也没什么技巧,蛮多东西都在jar包下可以找到、、、)

web.xml

 

struts2是以拦截器的形式加载的

 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

class在struts-core.jar包下可以找到

 

spring 是以监听器的形式加载的

 

参数的配置:

 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>WEB-INF/applicationContext.xml</param-value>
 </context-param>

(当然如果只有一个applicationContext.xml可以不配 默认的情况下web.xml也可以加载的)

 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

 

class 在spring-web.jar包下可以找到

 

entity.hbm.xml hibernate实体关系映射文件

dtd 在:hibernate3.jar/org.hibernate下可以找到

 

 

 

整合中我用spring代理 hibernate  没有保留hibernate.cfg.xml

applicationContext.xml配置文件的编写:dtd 在spring-bean.jar/org.springframework.beans.factory.xml/spring-beans-2.0.dtd

 

有了dtd的规范 applicationContext.xml就好写了,其中要注意的也就二个重要的节点:dataSource 和sessionFactory

关于dataSource

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
  <property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=Ext"></property>
  <property name="username" value="sa"></property>
  <property name="password" value=""></property>
 </bean>

property的属性在common-dbcp.jar/org.apache.commons.dbcp/BasicDataSource 都可以找到 把几个重要的属性写好就OK了
 

关于sessionFactory


 <bean id="seesionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource"></property>
  
  <property name="hibernateProperties">
  <props>
   <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
   <prop key="hibernate.show_sql">true</prop>
  </props>
  </property>
  
  <property name="mappingResources">
   <list>
    <value>com/tm/entity/Users.hbm.xml</value>
   </list>
  </property>
 </bean>

class 在spring-hibernate3.jar/org.springframework.orm.hibernate3/LocalSessionFactoryBean

属性

hibernateProperties是指定用的那种数据库

hibernate.show_sql用来在控制台打印hql语句

mappingResources将hibernate实体关系映射文件加入进来

 

struts.xml

dtd 在struts2-core.jar

按照dtd写配置文件 

 

 <struts>
  <package name="struts" extends="struts-default">
   <action name="show" class="usersAction" method="showList">
    <result name="success">list.jsp</result>
   </action>
   
   <action name="add" class="usersAction" method="doAdd">
    <result name="success" type="redirect">show.action</result>
   </action>
  </package>
 </struts>

 

注意:

extends="struts-default" 是一定要写的 struts2内置也许多核心的东西都在这里面

class属性我们是用spring代理的所有这里并不能指定包的路径(这与单独使用struts2是有区别的)

当然在applicationContext.xml中得指定包的路径

 <bean id="usersAction" class="com.tm.action.UsersAction" scope="prototype">
  <property name="userBiz" ref="baseBiz"></property>
 </bean>

 

注意:scope="prototype" 这里配置是应为struts2的action是有状态的,并不像struts1一样所以没次加载的时候你的从新创建一个action对性

 

异常:


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'seesionFactory' defined in ServletContext resource [/WEB-

INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity:

com.tm.entity.Users column: name (should be mapped with insert="false" update="false")
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.tm.entity.Users column: name (should be mapped with insert="false"

update="false")
 

我写的users 实体类 并存在和任何表中的关系 原来  我将映射文件中的  cloumn  二个都对应成了 数据库中的同一个字段

 

 

Unable to load configuration. - [unknown location]
Caused by: Caught exception while loading file struts-default.xml - [unknown location]
Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration


包冲突问题   原来是Hibernate 的xerces.jar包与tomcat有冲突,把这个包去掉就好了,不知道,会不会影响到Hibernate的使用。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值