springmvc:Controller-Model

1.控制器Controller

  • 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。

  • 控制器负责解析用户的请求并将其转换为一个模型。

  • 在Spring MVC中一个控制器类可以包含多个方法

  • 在Spring MVC中,对于Controller的配置方式有很多种

实现controller方式:

1.只要实现了controller接口的类,说明这就是一个控制器了

public class ControllerTest1 implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();

        //添加数据
        mv.addObject("msg", "controllerTest");
        //设置视图的名字(要跳转的名字)
        mv.setViewName("/test");
        return mv;
    }
}
继承controller方式的缺点:一个控制器中只有一个方法,如果需要多个方法,则要定义多个Controller,
@Component 组件
@Controller  Controller
@Repository dao
@Service  service

2.注解@Controller

@Controller/*
代表这个类被spring托管 ,被这个注解的类中的所有方法,如果返回值是string,并且存在具体的页面可以跳转,
那么就会会视图解析器解析*/
public class ControllerTest2 {
    @RequestMapping("/t2")
    public String test(Model model){
        model.addAttribute("msg","controllerTest2");
        return "test";
    }
    @RequestMapping("/t3")
    public String test2(Model model){
        model.addAttribute("msg","controllerTest3");
        return "test";
    }
}
@Controller/*
代表这个类被spring托管 ,被这个注解的类中的所有方法,如果返回值是string,并且存在具体的页面可以跳转,
那么就会会视图解析器解析*/
@RequestMapping注解用于映射url到控制器类或一个特定的处理程序方法。
可用于类或方法上。用于类上,表示类中的
所有响应请求的方法都是以该地址作为父路径

2.Moudle

Model,ModelMap,LinkedMap:
Model 只有几个方法,只适合用于储存数据,简化了新手对于MOdell对象的操作和理解
ModelMap 继承了LinkedMap,除了实现 了自身的一些方法,同样的继承LinkedMap的方法和特性
MOdelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转
@Controller
public class MoudleTest1 {
@RequestMapping("/t1")
    public String test1(Model model) {
      model.addAttribute("msg","modelTest");
      /*转发
   1. return "test";
    2.不配置视图解析器情况下
      return "forward:/WEB-INF/jsp/test.jsp";
      */
    //重定向(不需要视图解析器)
    return "redirect:/index.jsp";
    }
}

猜你喜欢

转载自www.cnblogs.com/zh93/p/12952178.html