您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > spring-mvc学习笔记
SpringMVC基础及应用springMVC概述和基础配置SpringMVC和Struts一样是一个MVC框架,和Spring无缝连接。和Struts2有点相似。SpringMVC属于SpringFrameWork的后续产品,Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还可以是Struts这样的Web框架。1.第一个示例web.xml,spring-mvc入口DispatcherServlet,在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xmlservletservlet-namespringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-param!--配置文件路径--param-namecontextConfigLocation/param-name!--*表示目录下所有文件--param-valueclasspath:config*/spring-servlet.xml/param-value!--param-valueclasspath:config/spring-servlet.xml/param-value--/init-param!—何时启动,1:容器启动时初始化--load-on-startup1/load-on-startup/servletservlet-mappingservlet-namespringMVC/servlet-nameurl-pattern//url-pattern/servlet-mappingcontrollerpublicclassHelloWorldControllerimplementsController{@OverridepublicModelAndViewhandleRequest(HttpServletRequestarg0,HttpServletResponsearg1)throwsException{Stringhello=lshhello提高班;MapString,Objectmap=newHashMapString,Object();map.put(map1,提高班1);map.put(map2,提高班2);map.put(map3,提高班3);//可以返回任何类型//传递string类型//returnnewModelAndView(/welcome,result,abc看看);//传递map类型returnnewModelAndView(/welcome,map,map);}}?xmlversion=1.0encoding=UTF-8?beansxmlns=:context=:p=:mvc=:xsi=:schemaLocation=://://://://://=/test1/helloworldclass=com.tgb.web.controller.HelloWorldController/!--视图分解解析器--beanid=viewResolverclass=org.springframework.web.servlet.view.InternalResourceViewResolverpropertyname=prefixvalue=//propertypropertyname=suffixvalue=.jsp/property/bean/beansbodyh传递数据:/h${result}divc:forEachitems=${map}var=m${m.key}-----${m.value}/c:forEach/div/body2.加载非默认路径配置文件,红色部分servletservlet-namespringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-name!--配置文件的名称也修改成非默认方式了--param-valueclasspath*:config/spring-servlet.xml/param-value/init-paramload-on-startup1/load-on-startup/servlet2.1.ModelAndView:model是数据,view是视图2.2jsp调试,%java代码,可以设置断点%2.2.1spring中配置bean的id和name区别本质上没有区别,id比较标准,不能存在重复,name取名比较随意可以重复,如果没有设置name属性那么,取实例用【包名.类名】:getBean(test.Abc)2.2.*多方法请求,现实业务一个类肯定会有多个方法来应对请求方法1:继承,耦合性大,不建议beanname=/test1/multiclass=com.tgb.web.controller.MultiControllerpropertyname=methodNameResolverrefbean=paramMethodResolver//property/beanbeanid=paramMethodResolverclass=org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver!--请求的方法名参数=add--propertyname=paramNamevalue=action/property/beanpublicclassMultiControllerextendsMultiActionController{//spring会根据请求解析成:add(HttpServletRequest,HttpServletResponse)publicModelAndViewadd(HttpServletRequestrequest,HttpServletResponseresponse){System.out.println(----add----);returnnewModelAndView(/multi,method,add);}publicModelAndViewupdate(HttpServletRequestrequest,HttpServletResponseresponse){System.out.println(----update----);returnnewModelAndView(/multi,method,update);}}=add方法2:委托对象,建议这种方式MultiActionController有两种使用方式:一是创建MultiActionController的子类,并指定将被MethodNameResolver解析的方法(这种情况下不需要这个delegate参数);二是定义一个委托对象,MethodNameResolver解析出目标方法后将调用该对象的相应方法。这种情况下需要定义MultiActionController的实例并将委托对象作为协作者注入(可通过构造参数或者setDelegate方法)。3.springMVC实现静态文件的访问如:js、图片、css文件因为我们过滤的条件是/,但是静态文件需要另外的方式servlet-mappingservlet-namespringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping=img=jquerybeanname=/test1/img.doclass=com.tgb.web.controller.StaticControllerpropertyname=methodNameResolverrefbean=paramMethodResolver//property/bean!--静态资源访问,因为web.xml中配置的是过滤所有请求(/),故此图片的也被屏蔽了,这里需要特殊配置,**或者*.*表示所有文件--mvc:resourceslocation=/img/mapping=/img/*.*/mvc:resourceslocation=/js/mapping=/js/**/publicclassStaticControllerextendsMultiActionController{publicModelAndViewimg(HttpServletRequestrequest,HttpServletResponseresponse){returnnewModelAndView(/staticFile);}publicModelAndViewjquery(HttpServletRequestrequest,HttpServletResponseresponse){returnnewModelAndView(/jquery);}}h图片访问,直接拖动图片到jsp自动生成标签(跟请求路径有关系,可以查询图片属性路径对比是否正确,请求路径是springMVC1/test1/img.do的时候可以是../,如果是springMVC1/test1/abc/img.do,如果../则springMVC1/test1/)/hdivimgalt=图片src=../img/a.png/divscr
本文标题:spring-mvc学习笔记
链接地址:https://www.777doc.com/doc-2859779 .html