栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Controller 控制器两种实现方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Controller 控制器两种实现方式

springmvc有两种实现控制器的主要方法一种实现接口方法,还有一种是用注解实现(@Controller)

实现接口Controller(不建议使用,因为一个接口一个方法,十分繁琐)

导入包

import org.springframework.web.servlet.mvc.Controller;

注意是web下的包

重写Controller中的方法

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
       
        return null;
    }

第一步:创建ModeAndView对象

第二步:调用对象中的方法,接受前端的信息并返回

第三步:封装跳转到视图,放在ModeAndView

public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //ModelAndView 模型和视图
        ModelAndView mv = new ModelAndView();
        //封装对象,放在ModelAndView中。Model
        mv.addObject("msg","HelloSpringMVC!");
        //封装要跳转的视图,放在ModelAndView中
        mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
        return mv;
    }
}
  • 实现接口Controller定义控制器是较老的办法
  • 缺点是:一个控制器中只有一个方法,如果要多个方法则需要定义多个Controller;定义的方式比较麻烦;
注解实现Controller(推荐使用)

导入包

import org.springframework.stereotype.Controller;

注意这个是和前边的不一样

@Controller
@RequestMapping("/HelloController")
public class HelloController {
    //真实访问地址 : 项目名/HelloController/hello
    @RequestMapping("/hello")
    public String sayHello(Model model){
        //向模型中添加属性msg与值,可以在JSP页面中取出并渲染
        model.addAttribute("msg","真漂亮");
        //web-inf/jsp/hello.jsp
        return "hello";
    }
}

@Controller

在类面前添加不用实现接口的方法,只需要新建一个方法返回的是String类型,参数为视图model加上其他,就直接可以在这个方法中实现与前端交互

@RequestMapping

这个注解表示在locolhost:8080/后加上HelloController,之后再加上下边return的关键字组成网页的地址,同时这个放在类前边和方法前边是一样的,不过要先添加上类的关键字后加入方法的,其他方法和接口无差别。

可以发现,我们的两个请求都可以指向一个视图,但是页面结果的结果是不一样的,从这里可以看出视图是被复用的,而控制器与视图之间是弱偶合关系

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号