以前使用的最多的就是Structs,对Spring,Hibernate的没涉及到过,最近做了一个用户登录的小案例,将SSH整合到一起,原先要使用Ajax来处理前台的信息传递,后来时间紧迫就没用,后期改进再发博。自己总结了下SSH的整合步骤,以及在开发案例中遇到的一些情况。
一:如何整合SSH
整合SSH主要是利用配置文件来完成,这部分整合步骤在我下篇转载的SSH整合
《SSH整合步骤》
二:在开发案例中遇到的问题
在将Action整合到Spring时出现了一个问题就是Action总是显示无法实例化,页面总是弹出:
Unable to instantiate Action的错误,查找资料发现有三种可能
1.就是拼写的错误,这个要靠自己仔细的检查
2.配置文件的错误:
开始我的structs.xml文件中的Action
<action name="login" class="com.demo.action.LoginAction">
<exception-mapping exception="java.lang.Exception" result = "error" />
<result name = "success">/admin/index.html</result>
<result name = "error">/admin/error.jsp</result>
</action>
applicationcontext.xml文件中配置:
<bean id="loginAction" class="com.demo.action.LoginAction" scope="prototype">
<property name="userManager" ref="userManager"></property>
</bean>
这里就用错了,既然要将action整合到spring中,就是将action交给了spring的控制器,action中的class应该对应applicationcontext.xml中bean id="loginAction",也就是说要将class="com.demo.action.LoginAction" 换成class="loginAction",action中的class对应bean中的id
3.这种错误对于我们这些初学者很难发现
我在LoginAction中写来这样两句
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
了解webwork中ServletDispatcher原理的人可能知道原因了, 因为ServletDispatcher接受客户端的HTTP请求,将JavaServlet的很多相关对象进行包装,再传给我们的XWork框架,由我们的XWork 框架去解析我们的xwork.xml配置文件,根据配置文件的信息,创建对应的Action,组装并调用相应的拦截器,执行Action,返回执行结果。
因此每次客户端的请求都将调用ServletDispatcher 的 service()方法,
该方法执行顺序如下:
1、通过request请求取得action的命名空间
2、根据servlet请求的Path,解析出要调用该请求的Action的名字(actionName)
3、创建Action上下文(extraContext)
4、根据前面获得的namespace、actionName、extraContext,创建一个ActonProxy
5、执行proxy的execute()方法,根据Action执行返回的值去调用执行相应的Result(返回结果处理)的方法。
现在应该能明白,原来是Action对象实例在ActionContext对象实例之前创建的,所有这样取得ActionContext容器对象就有可能会返回null. (这段话引自于:http://blog.csdn.net/icejadelove/article/details/4764399)
解决的方法,我查找了资料在我转载的《structs2中获得request,response,session的几种方法》
相关推荐
ssh整合登录案例,不错
ssh整合案例,实用性很强,可以直接用来做项目研发使用,也请大家一起探讨
Maven整合SSH案例 ************************************************************************************* 注意:运行前请配置Maven环境,和修改config.properties中数据库名称用户和密码,并且修改Tuser中的...
SSH整合案例
这是我自己写的一个CRM客户关系管理系统,是用SSH框架搭建的,有需要的朋友可以参考一下
NULL 博文链接:https://wuxiangqian.iteye.com/blog/1292591
ssh整合案例代码,使用idea编写,数据库文件也在其中,博客地址:https://blog.csdn.net/qq_41594146
ssh整合用户登录案例.doc
SSH整合案例(myeclipse)搭建,这个案例没有业务代码,就单纯地把SSH的框架平台搭好,你们可以很顺利的在上面开发,而无需花时间搭平台了。懒人装用,测试通过了。如果有什么问题,留言解决,注意给个好评,谢谢。
SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例SSH整合实例
改demo项目整合了目前j2ee体系中最流行的框架技术,并简单实现用户登录实体!
ssh整合的案例开发(整合了hibernate,spring,struts2)
简单的SSH项目整合案例,功能:客户信息的增,删,改,查,使用注解,事务,dataSource, C3P0 数据源
简单的案例整合SSH框架的应用,主要熟悉SSH三大框架的使用
SSH2整合 案例
SSH整合开发的一个实例,项目中有两张表(学生表与班级表)它们的关系是一对多的关系,项目中的action包是应用的表示层(Struts2)dao包是应用的数据访问层(Hibernate)domain是对应的两个类,由对象来生成关系,...
本案例是一个ssh整合案例,注意:本案例采用的框架是Spring+Springmvc+hibernate
精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例,__ssh整合完整案例.zip
整合ssh+ajax案例.doc 整合ssh+ajax案例.doc 整合ssh+ajax案例.doc
SSH整合实例 struts 2.3.20 GA、Hibernate3.6.10Final、Spring3.0.5