zoukankan      html  css  js  c++  java
  • SpringMVC

    注解:

       下面的是SpringMVC层代码:

        

    @Controller
    public class MyController {
     
        @RequestMapping ( "/showView" )
        public ModelAndView showView() {
           ModelAndView modelAndView = new ModelAndView();
           modelAndView.setViewName( "viewName" );
           modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
           return modelAndView;
        }
     
    }

    在上面的示例中,@Controller 是标记在类MyController 上面的,所以类MyController 就是一个SpringMVC Controller 对象了,然后使用@RequestMapping(“/showView”) 标记在Controller 方法上,表示当请求/showView.do 的时候访问的是MyController 的showView 方法,该方法返回了一个包括Model 和View 的ModelAndView 对象。这些在后续都将会详细介绍。

       2、使用 @Controller 定义一个 Controller 控制器

      

    @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器,这个接下来就会讲到。
    单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。拿MyController 来举一个例子

    @Controller
    public class MyController {
        @RequestMapping ( "/showView" )
        public ModelAndView showView() {
           ModelAndView modelAndView = new ModelAndView();
           modelAndView.setViewName( "viewName" );
           modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
           return modelAndView;
        }
     
    }

    这个时候有两种方式可以把MyController 交给Spring 管理,好让它能够识别我们标记的@Controller 。
    第一种方式是在SpringMVC 的配置文件中定义MyController 的bean 对象。
    <bean class="com.host.app.web.controller.MyController"/>
    第二种方式是在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

        < context:component-scan base-package = "com.host.app.web.controller" >
           < context:exclude-filter type = "annotation"
               expression = "org.springframework.stereotype.Service" />
        </ context:component-scan >

    ==================================================================================

    如果类上面也加上了@RequestMapping()注解的话,访问这个类里面的方法,就要在访问方法的注解路径下面加上类上面的路径,就像下面这样:

      

    @Controller
    @RequestMapping ( "/test" )
    public class MyController {
        @RequestMapping ( "/showView" )
        public ModelAndView showView() {
           ModelAndView modelAndView = new ModelAndView();
           modelAndView.setViewName( "viewName" );
           modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
           return modelAndView;
        }
     

    类上面也加上了@RequestMapping ( "/test" ),那就是说,当访问到/test/showView.do的时候,我们用这个方法去执行。



    @Value()注解:
     
     Spring 通过注解获取*.porperties文件的内容,除了xml配置外,还可以通过@value方式来获取。说白了就是@Value()注解里面的内容,就相当于*.porperties文件里面的内容,一样会被加载到,但是使用这个注解的类上面,必须在当前类使用@Component或者@Controller。


    在service层定义@Autowired的话,,就不需要再写setDao方法就可以通过接口调用Dao了。

    在Service层加入@service注解的话,这样action中直接写@Autowired,就可以调用service层。

    在Action层加入@Controller,就不需要在配置文件中定义action的bean
    @requestMapping是spring-mvc的东西,以前我们用struts2, 需要配置文件定义 action的名字,在浏览器中写 XXX.do才能访问action的方法,如果定义了他的话,就不需要struts了,直接在浏览器中输入XXX.do就可以访问findAll方法了。
     
  • 相关阅读:
    Leetcode Unique Binary Search Trees
    Leetcode Decode Ways
    Leetcode Range Sum Query 2D
    Leetcode Range Sum Query
    Leetcode Swap Nodes in Pairs
    Leetcode Rotate Image
    Leetcode Game of Life
    Leetcode Set Matrix Zeroes
    Leetcode Linked List Cycle II
    CF1321A
  • 原文地址:https://www.cnblogs.com/tidhy/p/6822978.html
Copyright © 2011-2022 走看看