sturtsconfigxml 中 <controller processorClass=orgspringframeworkwebstrutsDelegatingRequestProcessor/> 通过 <controller >来替代orgapachestrutsactionRequestProcessor 的请求处理
public class LoginAction extends Action {
//利用spring来注入这个对象
private LoginDao dao ;
public void setDao(LoginDao dao) {
Systemoutprintln(执行注入);
thisdao = dao;
}
public LoginDao getDao() {
return dao;
}
public ActionForward execute(ActionMapping mapping ActionForm form
HttpServletRequest request HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Autogenerated method stub
//这样一改这行代码似乎没有必要了
//WebApplicationContext ctx = thisgetWebApplicationContext();
//LoginDao dao = (LoginDao) ctxgetBean(loginDao);
User u = new User();
usetName(loginFormgetName());
usetPwd(loginFormgetPwd());
//直接用dao来调用spring会将这个对象实例化
if(daocheckLogin(u)){
return mappingfindForward(success);
}else{
return mappingfindForward(error);
}
}
}
这里的
LoginAction extends Action 说明 struts 每有和spring 耦合
看一下applicationContextxml 中的配置
<beans>
<bean id=loginDao class=comcaodaoLoginDao/>
<bean name=/login class=comcaostrutsactionLoginAction>
<property name=dao>
<ref local=loginDao/>
</property>
</bean>
</beans>
这里 name=/login 与struts 中的path匹配class=comcaostrutsactionLoginAction 与struts 中的type匹配
还要为 LoginAction 提供必要的setXXX方法 获得ApplicationCotext和依赖注入的工作都在DelegatingRequestProcessor中完成
[] [] []