Controller配置方式及RequestMapping说明

一.控制器controller

  • 控制器复杂提供访问应用程序的行为,通常通过接口定义和注解定义两种方式实现
  • 控制器负责解析用户的请求并将其转化为一个模型
  • 在springMVC中一个控制器类可以包含多种方法
  • 在springMVC中,对于Controller的配置方式有很多种

接口实现:

通过编写一个控制类,实现controller的接口

//定义控制器
//注意点:不要导错包,实现接口,重写方法
public class controllerTest1 implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("msf","i  like  ranyl");
        mv.setViewName("msf");
        return mv;
    }
}

 

编写完接口去对应的spring中注册请求的bean,name对应请求路径,class对应请求的类

    <bean name="/msf" class="top.lostyou.controller.controllerTest1"/>

 

编写前端msf.jsp,注意路径位置一定是/page/msf.jsp,是为了对应我们的视图解析器

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>msf</title>
</head>
<body>
${msf}
</body>
</html>

 

注解实现@

  • @Controller注解类型用于声明spring类的实例是一个控制器
  • spring可以使用扫描机制来找到应用程序中所有基于注解的控制器类,为了保证spring能找到你的控制器,需要在配置文件中声明组件扫描
    <context:component-scan base-package="top.lostyou.controller"/>
  • 增加一个ControllerTest2类,使用注解实现
//@Controller注解会自动添加到spring上下文容器中
@Controller
public class controllerTest2 {
    //映射访问路径
    @RequestMapping("/msf")
    public String fun(Model model){
        //springMVC容器会自动实例化一个对象向视图中传值
        model.addAttribute("msf","I&nbsp;&nbsp;love&nbsp;&nbsp;you!");
        return "msf";
    }
}

 

常用的注解:

  1. @Componennt
  2. @Service
  3. @Controller
  4. @Respository

二.RequestMapping说明:

@RequestMapping注解用于映射url到控制器类或一个特定的处理程序方法,可用于类和方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

为了测试结论更加准确,我们可以加上一个项目名测试 page

第一种:只注解在方法上面

@Controller
public class controllerTest3 {
    @RequestMapping("/msf")
    public String Test(){
        return "msf";
    }
}

 

访问路径为:http://localhost:8080/msf

第二种:同时注解方法和类

@Controller
@RequestMapping("/T3")
public class controllerTest3 {
    @RequestMapping("/msf")
    public String Test(){
        return "msf";
    }
}

 

访问路径为:http://localhost:8080/T3/msf

 

posted @ 2023-03-06 11:01  回忆也交给时间  阅读(138)  评论(0编辑  收藏  举报