刚开始学习Spring没几天,由于急用,在整和Hibernate时遇到一些问题,代码反复看过n遍,No Problem!但就是启动服务器报错,还提示偶映射文件有问题!害惨偶啦!!!
最后,索性重新建了个工程,又把Spring dist目录下的3个包,和lib下的所有包(排除jakarta-commons/commons-attributes-compiler.jar、j2ee/servlet-api.jar、j2ee/jsp-api.jar)加了一边,此时没有再加Hibernate3.2中的包了,就没有问题了!
现在要赶快进入下一步,整和Struts1.3.5! 经验:在eclipse中开发,有些包还是不能加的啊!
首先,Spring2.0.6中包含的Struts版本较老(可能是1.2.9),所以要替换掉它啦!找来相应的包,如下几个
添加 到工程的lib目录下,加入到java build path中,现在包的问题我的是已经解决了!再要考虑如何加载Spring,Struts的配置文件了!
Struts配置文件加载方法: 在web.xml中添加,
< servlet-name > actionServlet </ servlet-name >
< servlet-class > org.apache.struts.action.ActionServlet </ servlet-class >
< init-param >
< param-name > config </ param-name >
< param-value > /WEB-INF/struts-config.xml </ param-value >
</ init-param >
< init-param >
< param-name > debug </ param-name >
< param-value > 2 </ param-value >
</ init-param >
< init-param >
< param-name > detail </ param-name >
< param-value > 2 </ param-value >
</ init-param >
< load-on-startup > 2 </ load-on-startup >
</ servlet >
<!-- Standard Action Servlet Mapping -->
< servlet-mapping >
< servlet-name > actionServlet </ servlet-name >
< url-pattern > *.do </ url-pattern >
</ servlet-mapping >
Spring配置文件XXXContext.xml加载方法1: 在web.xml中添加如下内容,多个spring的配置文件,逗号分开!
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml , /WEB-INF/dao-context.xml , /WEB-INF/action-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
加载方法2: 在Sturts-config.xml中加入如下代码
< set-property property ="contextConfigLocation"
value ="/WEB-INF/applicationContext.xml,/WEB-INF/dao-context.xml,/WEB-INF/action-context.xml" />
</ plug-in >
Spring IoC容器要对Struts的Action进行管理,ok!也就是Struts的ActionServlet捕获到*.do,转到Spring来处理用户请求,需要Sturts-config.xml中加入
processorClass ="org.springframework.web.struts.DelegatingRequestProcessor" />
Struts的配置和以前一样,但可以不用加type属性.Spring的dao-context.xml来接受用户的action,
< bean name ="/user/login" class ="cn.com.action.LoginAction" scope ="prototype" >
< property name ="userValidateDao" >
< ref bean ="userValidateDao" />
</ property >
</ bean >
</ beans >
此处的name="/user/login"必须和Struts的path对应起来,而不是id属性.这样就实现了Spring对Action的管理,也就是整和了Struts1.3.5!
注:开发环境,Eclipse3.2,Hibernate3.2,Struts1.3.5,Spring2.0.3,有些包需要自己加,这点要特别注意!具体的代码就不加了,框架大概是这样的!
下一步是要整和Struts2.0.6,老师要用的!配置时像WebWork2,但我还没用过,还要加油啊!!!!