Spring中MVC模块代码详解

网友投稿 312 2023-03-10


Spring中MVC模块代码详解

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相关的组件

<!DCTYPEbeans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://springframework.org/dtd/spring-beans.dtd">

/WEB-INF/jsp/

.jsp

http:// <!—Controller的URL会被配置成"cat.mvc"-->

catController

web.xml配置

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

总结

以上就是本文关于Spring中MVC模块代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用手机管理路由器密码(手机怎样管理路由器密码)
下一篇:深入探索Java常量池
相关文章

 发表评论

暂时没有评论,来抢沙发吧~