SpringMVC的Controller用于处理用户的请求。Controller相当于Struts1里的Action,他们的实现机制、运行原理都类似
Controller是个接口,一般直接继承AbstrcatController,并实现handleRequestInternal方法。handleRequestInternal方法相当于Struts1的execute方法
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class CatController extends AbstractController{
private ICatService catService;
//setter、getter略
protected ModelAndView handleRequestInternal(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
String action =request.getParameter("action");
if("list".equals(action)){
return this.list(request,response);
}
}
protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
List catList =catService.listCat();
request.setAttribute("catList", catList);
return new ModelAndView("cat/listCat");
}
}
SpringMVC没有内置数据的封装,开发者可以自己封装数据转换代码
SpringMVC独特的地方在于view层的处理上。handleRequestInternal返回ModelAndView对象,可以看做是对JSP对象的封装。ModelAndIView直接接受JSP页面的路径。例如参数"cat/listCat",只是JSP路径的一部分,实际完整的路径是"WEB-INF/jsp/cat/catList.jsp",路径前后的部分是配置在配置文件中的
除了制定JSP路径,ModelAndView还可以直接传递Model对象到View层,而不用事先放到request中,例如newModelAndView("cat/listCat","cat",cat),如果传递多个参数,可以使用Map,如
Map map = newHashMap();
map.put("cat",cat);
map.put("catList",catList);
return new ModelAndView("cat/listCat",map);
一般使用一个独立的xml文件如spring-action.xml专门配置web相关的组件
web.xml配置 /WEB-INF/jsp/ .jsp catController contextConfigLocation /WEB-INF/classes/applicationContext.xml, /WEB-INF/classes/spring-action.xml org.springframework.web.context.ContextLoaderListener spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/classes/spring-action.xml 1 spring *.mvc
如果一个Controller要处理多个业务逻辑,可以使用MultiActionController,相当于Struts 1中的DispatchAction,能根据某个参数将不同的请求分发到不同的方法上
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class CatController extends AbstractController{
private ICatService catService;
//setter、getter略
protected ModelAndView add(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
……
return new ModelAndView("cat/addCat");
}
protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
List catList =catService.listCat();
request.setAttribute("catList", catList);
return new ModelAndView("cat/listCat");
}
}
配置到spring-action.xml
action list catController catMultiController
原神祈愿模拟器最新版
原神祈愿模拟器手机版是一款完整汉化的趣味原神抽卡模拟小游戏,
宝宝森林美食完整版
宝宝森林美食游戏最新版是一款十分有趣的休闲益智游戏,帮助宝宝
g沙盒仇恨官方英文版(gorebox)
G沙盒仇恨英文原版是一款最近非常火热的沙盒模拟类游戏,在这里
迷你世界测试服最新版2024
迷你世界测试服2021最新版,即迷你世界的先遣服版本,用户能
闪耀暖暖最新版2024
闪耀暖暖手游这是非常好玩的换装手游,游戏内容丰富有趣,游戏环