Spring3 MVC 注解(一)---注解基本配置及@controller和 @Reques...

 
一:配置web.xml

      1)问题:spring项目中有多个配置文件mvc.xml   dao.xmlweb

      2)解决:在web.xml中spring

       <init-param>服务器

             <param-name>contextConfigLocation</param-name>mvc

             <param-value>/WEB-INF/xxx/*.xml</param-value>     app

              xxx表示xml文件路径    *.xml表示后缀名为xml的任意文件jsp

      </init-param>    post

    3)可使用  逗号分隔spa

二:controllercomponent

       1:spring mvc 中将  controller  认为是 MVC中的C --控制层xml

       2:规范命名 类名  xxxController 

      3:若是不基于注解:   该类须要继承  CommandController   或者 其余不少 参见  spring帮助

            若是基于注解:在类名前  加上         @controller   

      4:补充:将类名前加上该注解,当spring启动  或者web服务启动  spring会自动扫描全部包(固然,这个能够设置)

         做用:  就是告诉服务器  这个类是MVC中的C    这个类能够接收用户请求    处理用户请求

三:问题:如何接收用户请求

     1:假设用户请求URL 是: http://localhost:8080/项目名/xxx.do      do不do都同样  无论这个do  你用什么均可以

     2:这个时候,spring开始在全部的 C  中,找对应的处理请求的方法

     3:在任意的能够C的类中,在你想要处理此请求的方法定义的前面 

         @RequestMapping("/xxx")          这个时候的xxx  就是用户请求的xxx     无论do

         public  String  方法名()

         {

           return  “aaa”;                          

            返回一个字符串,很是有用   要注意   用来决定要显示的MVC的 V  视图层 是哪一个 

          }

四:上面  配置好了  MVC的   C  也就是 控制层      在方法中返回字符串  用来决定MVC的V  视图层

       问题:如何让spring 去扫描类  创建关联

       1:在配置文件中  (spring)的 假设是 mvc.xml  中

       2:加入 <context:component-scan  base-package="包路径"/>  

     

五:问题 如何返回到视图层 V

     1: 解决:此时,须要在配置文件中,加入视图解析器    有不少种 ,太多了 

     2:这里用基于jsp/jstl  视图

     3:在web.xml 中加入bean 配置

<bean class="org.s...f....web.servlet.view.InternalResourceViewResolver">

       <property  name="prefix" value="/WEB-INF/views"/>                     前缀

      <property  name="suffix"   value=".jsp"/>                                        后缀

</bean>

 

 

小结:经过上述5步  ,基本完成 C   V 的配置

 1:spring 中的C  通常起类名     XXXController   在这个类里面 须要加入@controller  标志这个类能够做为请求处理类   也就是 控制类

2:这个控制类里面能够有不少方法,哪一个方法用来处理用户请求,就在那个方法前面 加  @RequestMapping(“/xxxxx请求路径”)

3;当请求处理完毕后  返回值  决定了  该处理完毕后  用户将跳转到那个页面   这个很重要  

4:例如

@RequestMapping("/xxx")          这个时候的xxx  就是用户请求的xxx     无论do

         public  String  方法名()

         {

             return  “aaa”;                         

            返回一个字符串,很是有用   要注意   用来决定要显示的MVC的 V  视图层 是哪一个 

       }

   返回 aaa   根据配置文件中的 视图处理器配置    加入前缀  后缀

  页面将跳转到 /WEB-INF/views/aaa.jsp


6、 问题:有多个 @RequestMapping 

  @controller

@RequestMapping("/aaa")           ----------------->类级别  能够不须要  若是要了  下面全部的请求路径前 都须要加入  /aaa

 public class ccccontroller{

      @RequestMapping("/bbb") --------------------->方法级别 必须有   决定这个方法处理哪一个请求     若是有类级别 /aaa/bbb

       public String xxx(){                                                                                                                             若是没有 /bbb  

            retrun

      }

}

七:问题:接收用户请求参数 值

    1)请求1: /test/start.do?name=zhangsan

         请求2: /test/start/zhangsan.do

        在请求2中 将参数做为请求URL 传递           感受用的不习惯 

        采用 URL模板

    2)@RequestMapping("/start/{name}")    这个name  随便  啥均可以

         public String start(@PathVariable("name") string name){       反正和上面的对应

             return      方法体里面就能够直接得到参数

        }

    3)包含多个  @RequestMapping ("/start/{name}/{age}")

 

八  问题  不一样请求方法  用不一样处理方法   get  post

   @RequestMapping (value="/start" ,method=RequestMethod.GET)    处理post   就换成  POST

相关文章
相关标签/搜索