Fork me on GitHub

Spring MVC基于注解@Controller和@RequestMapping开发的一个例子

1.创建web项目

2.springmvc的配置文件中指定注解驱动,配置扫描器

  在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC 框架扫描到,需要在配置文件中声明 spring-context,并使用 <context:component-scan/> 元素指定控制器类的基本包(请确保所有控制器类都在基本包及其子包下)。

 

 1      <!-- 使用扫描机制扫描控制器类,控制器类都在controller包及其子包下 -->
 2     <context:component-scan base-package="com.springmvc.mycontroller"></context:component-scan>
 3     
 4     <!-- 配置视图解析器 -->
 5     <bean
 6         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 7         <!-- 配置前缀 -->
 8         <property name="prefix" value="/WEB-INF/jsp/"></property>
 9         <!-- 配置后缀 -->
10         <property name="suffix" value=".jsp"></property>
11     </bean>

 

3.新建一个控制类,@controller:标识当前类是控制层的一个具体的实现,

 @requestMapping:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法上的requestmapping来访问。

package com.springmvc.mycontroller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * springmvc 使用注解@controller实现
 * @author Administrator
 *
 */
@Controller
public class IndexController {
    
    @RequestMapping(value="/index")
    public String Index(){
         /**
         * index代表逻辑视图名称,需要根据Spring MVC配置
         * 文件中internalResourceViewResolver的前缀和后缀找到对应的物理视图
         */
        
        return "index";
    }
    @RequestMapping(value="/login")
    public String login(){
        return "login";
    }
}

 

4.测试

总结:

 1.使用基于注解的控制器具有以下两个优点:

  在基于注解的控制器类中可以编写多个处理方法,进而可以处理多个请求(动作),这就允许将相关的操作编写在同一个控制器类中,从而减少控制器类的数量,方便以后的维护。基于注解的控制器不需要在配置文件中部署映射,仅需要使用 RequestMapping 注释类型注解一个方法进行请求处理

 

   2.@RequestMapping

    @RequestMapping既可以放在方法上(注解的 value 属性将请求 URI 映射到方法),也可以放在类级别上(为了方便维护程序,建议开发者采用类级别注解,将相关处理放在同一个控制器类中。例如,对商品的增、删、改、查处理方法都可以放在 控制类中。)

 

  3.请求处理方法常见的返回类型

    最常见的返回类型就是代表逻辑视图名称的 String 类型,例如前面教程中的请求处理方法。除了 String 类型以外,还有 ModelAndView、Model、View 以及其他任意的 JAVA 类型。

 

posted @ 2020-05-28 10:42  云源  阅读(335)  评论(0编辑  收藏  举报
湖南云源网络科技有限公司 www. ysource.cn 版权所有   ICP证:湘ICP备18004366号
  邮箱:2536201485@qq.com   CSDN博客地址:https://blog.csdn.net/qq_32885621 有事您Q我