说明
Spring也提供一套自己的MVC框架。相对于Struts、WebWork等的MVC框架,Spring的MVC显得小巧而灵活,实现的机制也是完全不同的。相对于某些应用,SpringMVC也是个不错的选择。
MVC控制层
Spring MVC的控制层是Controller。Controller是个接口,一般直接继承AbstractController并实现handlerRequestInternal方法(相当于Struts 1.x的execute()方法)
package springMVC;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import interf.IPersonDAO;
public class PersonController extends AbstractController { //AbstractController类似继承Action
private IPersonDAO personDAO;//DAO等待Spring注入
public IPersonDAO getPersonDAO() {
return personDAO;
}
public void setPersonDAO(IPersonDAO personDAO) {
this.personDAO = personDAO;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
//主方法,类似于Struts 1.x的execute()
String action=request.getParameter("action");
//需要手工获取参数,也可以自己编写封装代码
//Write some code to handle the business.
//personDAO.dosome();
return null;
}
}
多业务分发器
MultiActionController 相当于Struts 1.x中的DispatchAction,能根据某参数值(例如action参数)将不同的请求分发到不同的方法上。
package springMVC;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import interf.IPersonDAO;
public class PersonMultiController extends MultiActionController {
private IPersonDAO personDAO;
public IPersonDAO getPersonDAO() {
return personDAO;
}
public void setPersonDAO(IPersonDAO personDAO) {
this.personDAO = personDAO;
}
public ModelAndVie