为什么80%的码农都做不了架构师?>>>
struts与spring整合方法
<!-- 载入applicationContext上下文-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/*applicationContext*.xml</param-value>
</context-param>
第一种:使用 Spring 的 ActionSupport 类整合 Structs
继承spring的ActionSupport类
public class ShowDeptListAction extends ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DeptManager deptManager = (DeptManager) getWebApplicationContext()
.getBean("deptManager");
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
}
第二种:使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor
在struts-config.xml 文件加入:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
在spring上下文配置文件中作为bean注册:
<beans>
<bean name="/showDeptList"
class="cn.com.thinkbank.struts.action.ShowDeptListAction">
<property name="deptManager" ref="deptManager" >
</property>
</bean>
</beans>
servlet代码类如下:
public class ShowDeptListAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
private DeptManager deptManager;
public void setDeptManager(DeptManager deptManager) {
this.deptManager = deptManager;
}
}
第三种:将 Struts Action 管理委托给 Spring 框架
在struts-config.xml 文件加入:
<action-mappings>
<action path="/showDeptList"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="ok" path="/form/showDeptList.jsp"></forward>
</action>
</action-mappings>
在spring上下文配置文件中作为bean注册:
<bean name="/showDeptList"
class="cn.com.thinkbank.struts.action.ShowDeptListAction">
<property name="deptManager" ref="deptManager" >
</property>
</bean>
servlet代码类如下:
public class ShowDeptListAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
private DeptManager deptManager;
public void setDeptManager(DeptManager deptManager) {
this.deptManager = deptManager;
}
}
<!-- 载入applicationContext上下文-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/*applicationContext*.xml</param-value>
</context-param>
第一种:使用 Spring 的 ActionSupport 类整合 Structs
继承spring的ActionSupport类
public class ShowDeptListAction extends ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DeptManager deptManager = (DeptManager) getWebApplicationContext()
.getBean("deptManager");
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
}
第二种:使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor
在struts-config.xml 文件加入:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
在spring上下文配置文件中作为bean注册:
<beans>
<bean name="/showDeptList"
class="cn.com.thinkbank.struts.action.ShowDeptListAction">
<property name="deptManager" ref="deptManager" >
</property>
</bean>
</beans>
servlet代码类如下:
public class ShowDeptListAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
private DeptManager deptManager;
public void setDeptManager(DeptManager deptManager) {
this.deptManager = deptManager;
}
}
第三种:将 Struts Action 管理委托给 Spring 框架
在struts-config.xml 文件加入:
<action-mappings>
<action path="/showDeptList"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="ok" path="/form/showDeptList.jsp"></forward>
</action>
</action-mappings>
在spring上下文配置文件中作为bean注册:
<bean name="/showDeptList"
class="cn.com.thinkbank.struts.action.ShowDeptListAction">
<property name="deptManager" ref="deptManager" >
</property>
</bean>
servlet代码类如下:
public class ShowDeptListAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List<Dept> list = deptManager.getAllDept();
request.setAttribute("list", list);
return mapping.findForward("ok");
}
private DeptManager deptManager;
public void setDeptManager(DeptManager deptManager) {
this.deptManager = deptManager;
}
}