How to integrate your Struts application with Spring
To integrate your Struts application with Spring, we have two options:
1. Configure Spring to manage your Actions as beans, using the ContextLoaderPlugin, and set their dependencies in a Spring context file.
2. Subclass Spring's ActionSupport classes and grab your Spring-managed beans explicitly using a
getWebApplicationContext()
method.1. get and include the “struts2-spring-plugin-xxx.jar”
2. Configure the Spring listener “org.springframework.web.context.ContextLoaderListener” in web.xml file.
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
3. Register all the Spring’s Beans in the applicationContext.xml file; the Spring listener will locate this xml file automatically.
<bean id="userBo" class="com.mkyong.user.bo.impl.UserBoImpl" />
<bean id="userSpringAction" class="com.mkyong.user.action.UserSpringAction">
<property name="userBo" ref="userBo" />
</bean>
4. Declared all the relationship in struts.xml
<action name="userSpringAction" class="userSpringAction" >
<result name="success">pages/user.jsp</result>
</action>
This will pass the Spring’s “userBo” bean into the UserAction via setUserBo() automatically.
UserBo userBo;
public void setUserBo(UserBo userBo) {
this.userBo = userBo;
Alternatively, you can use the Spring’s generic WebApplicationContextUtils class to get the Spring’s bean directly.
WebApplicationContext context =
WebApplicationContextUtils.getRequiredWebApplicationContext(
ServletActionContext.getServletContext()
);
UserBo userBo1 = (UserBo)context.getBean("userBo");
userBo1.printUser ();
Good Explanation :)
ReplyDelete