![](/icons/64692dou.gif)
![](/icons/64692de.gif)
2
![](/icons/64692dou.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
3
![](/icons/64692dou.gif)
![](/icons/64692dou2.gif)
无论用那种思路方法来整合第
![](/icons/64692yi.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
![](/icons/64692yi.gif)
![](/icons/64692dou2.gif)
struts-config.xml中
<plug-in
Name="org.springframework.web.struts.ContextLoaderPlugIn">
<
-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
spring ![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
![](/icons/64692de.gif)
1、使用Spring
![](/icons/64692de.gif)
Spring
![](/icons/64692de.gif)
ActionSupport
![](/icons/64692de.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
![](/icons/64692dou2.gif)
这是
![](/icons/64692yi.gif)
![](/icons/64692de.gif)
public
LoginAction extends org.springframework.web.struts.ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
//获得 WebApplicationContext 对象
WebApplicationContext ctx = this.getWebApplicationContext
;
LoginDao dao = (LoginDao) ctx.getBean("loginDao");
User u =
User
;
u.
Name(loginForm.getName
);
u.
Pwd(loginForm.getPwd
);
(dao.checkLogin(u)){
mapping.findForward("success");
}
{
mapping.findForward("error");
}
}
}
applicationContext.xml 中
配置
<beans>
<bean id="loginDao"
="com.cao.dao.LoginDao"/>
</beans>
这中配置方式同直接在web.xml文件配置差别不大![](/icons/64692dou2.gif)
![](/icons/64692yi.gif)
![](/icons/64692dou2.gif)
但实现了表示层和业务逻辑层
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
2、使用Spring
![](/icons/64692de.gif)
DelegatingRequestProcessor 继承自 org.apache.struts.action.RequestProcessor 并覆盖了里面
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
sturts-config.xml 中
processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/> 通过 来替代
org.apache.struts.action.RequestProcessor
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
public
LoginAction extends Action {
//利用spring来注入这个对象![](/icons/64692dou2.gif)
private LoginDao dao ;
public void
Dao(LoginDao dao) {
.out.pr
ln("执行注入");
this.dao = dao;
}
public LoginDao getDao
{
dao;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
//这样
改这行代码似乎没有必要了![](/icons/64692dou2.gif)
//WebApplicationContext ctx = this.getWebApplicationContext
;
//LoginDao dao = (LoginDao) ctx.getBean("loginDao");
User u =
User
;
u.
Name(loginForm.getName
);
u.
Pwd(loginForm.getPwd
);
//直接用dao来
spring会将这个对象例子化![](/icons/64692dou2.gif)
(dao.checkLogin(u)){
mapping.findForward("success");
}
{
mapping.findForward("error");
}
}
}
这里![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
LoginAction extends Action 介绍说明 struts 每有和spring 耦合![](/icons/64692dou2.gif)
看
下
applicationContext.xml 中
配置![](/icons/64692dou2.gif)
<beans>
<bean id="loginDao"
="com.cao.dao.LoginDao"/>
<bean name="/login"
="com.cao.struts.action.LoginAction">
<property name="dao">
<ref local="loginDao"/>
</property>
</bean>
</beans>
这里 name="/login" 和struts 中![](/icons/64692de.gif)
![](/icons/64692class.gif)
![](/icons/64692de.gif)
还要为 LoginAction 提供必要
![](/icons/64692de.gif)
![](/icons/64692set.gif)
![](/icons/64692dou2.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
3
![](/icons/64692dou.gif)
Action
![](/icons/64692de.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
![](/icons/64692de.gif)
![](/icons/64692de.gif)
org.springframework.web.struts.DelegatingActiongProxy继承于org.apache.struts.action.Action .
全权委托
![](/icons/64692de.gif)
![](/icons/64692de.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm"
type="com.cao.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<!-- type指向
是spring
代理类 -->
<action
attribute="loginForm"
input="login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy" >
<forward name="success" path="/ok.jsp" />
<forward name="error" path="/error.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.cao.struts.ApplicationResources" />
<plug-in
Name=
"org.springframework.web.struts.ContextLoaderPlugIn">
<
-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>
</struts-config>
区别的处
1
<action>中 type指向
是spring
代理类
2
去掉struts-config.xml中 <controller >
3种整和方式中我们优先选用 全权委托
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
理由:
1
![](/icons/64692dou.gif)
![](/icons/64692yi.gif)
![](/icons/64692de.gif)
2
![](/icons/64692dou.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
整理总结
![](/icons/64692yi.gif)
整合工作中
![](/icons/64692de.gif)
1
![](/icons/64692dou.gif)
2
![](/icons/64692dou.gif)
3
![](/icons/64692dou.gif)
![](/icons/64692set.gif)
![](/icons/64692de.gif)
![](/icons/64692dou2.gif)
最新评论