controller实现
1.实现Controller接口
实现Controller接口,重写handleRequest方法,ModelAndView对象是一个模型视图对象,既可以添加数据,又可以保存页面信息,并且处理请求的方式是转发。这个对象要拆成两部分来看
model和view。转发到下一个页面之后,会把 model中的数据渲染到view中展示。在页面可以使用el表达式获取。Model中数据的范围是 request。
2.实现HttpRequestHandler接口
实现HttpRequestHandler接口,重写 handleRequest方法。这个实现方式与servlet 基本一致。
3.全注解
全注解,开发中写的@Controller注解必须配合扫描才能变成控制器。扫描组件会把头部带有注解的类管理起来。@RequestMapping是提供请求访问路径的注解,比如UserController上添加的@RequestMapping(“/”),这是相对路径,相对于整个程序来说的,所以可以在项目下直接访问到这个控制器类。方法 test的头部添加@RequestMapping(“/test.do”),表示访问到这个控制器类之后,在访问路径上再添加上“/test.do”才能访问到这个方法。一个注解控制器类中可以定义很多的方法,只需要在方法头部添加不同的@RequestMapping 的值就可以吧这些方法作为不同的控制器使用,所以注解模式在开发中最常用。
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的关键字组成网页的地址,同时这个放在类前边和方法前边是一样的,不过要先添加上类的关键字后加入方法的,其他方法和接口无差别。
controller实现相关推荐
- go系列(5)- beego自己写controller
前边的系列文章已经讲述了如何安装环境, beego的处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller. 我们在写自己的controller的时候,一定要继承bee ...
- @Controller和@RestController的区别?
@RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...
- 关于Page翻页效果--Page View Controller
Page View Controllers 你使用一个page view controller用page by page的方式来展示内容.一个page view controller管理一个self- ...
- mvc ajax提交html标签,asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将数据从View传递到Controller...
我试图使用ajax将数据从View传递到Controller Action Method,如下所示: – 我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个Vi ...
- spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……
在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect. 上面的图是Spring ...
- gvgai框架搭建及controller编写
gvgai框架搭建及controller编写 gvgai框架搭建 controller编写 gvgai框架搭建 gvgai官网:http://www.gvgai.net/ 框架下载:http://ww ...
- Animation Override Controller动画重载器
假设游戏有很多个小人, 每一个人有2种动画站立,跑. 在通常情况下每一个人物都需要一个动画控制器. 有没有想过定义一个动画控制器 无须在定义全新的动画充值器实现每一个小人都播放自己的动画呢?没错An ...
- Ext.app.controller的refs
简 单来说,就是4.0建议的MVC中controller引用组件的一种方式,selector中设置组件,可以用id.classname,但推荐用 ComponentQuery("组件检索&q ...
- java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息? 本帖最后由 LonelyCoder2012 于 2014-03- ...
- controller不跳转页面的几个原因_光知道SpringBoot,不用thymeleaf就太不对了
之前的时候,我为了演示Linux配置提交项目执行环境,简单的整理了一下springboot得相关内容,但是在实际的开发过程中,SpringBoot得使用可不仅仅就是这一点点遍历而已,在SpringBo ...
最新文章
- 2022-03-16
- 即时聊天IM之二 openfire 整合现有系统用户
- python 命令行 解析模块 optparse、argparse
- Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
- (63)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二)
- MISCONF Redis配置为保存RDB快照
- DFS csu1719 Boggle
- 服务于win10的telnet的简易聊天服务器(单进程)
- 阿里oss服务端签名后直传
- 软件工程之概要设计说明书
- GreeDAO 使用
- 宋体 ttf_Linux安装7种思源宋体的5个步骤
- java等待所有子线程执行完毕再执行
- 对傅里叶函数以及级数的理解
- 隐藏17年的Firefox文件窃取漏洞,可结合WhatsApp钓鱼窃取文件
- 浅析N沟道增强型MOS管的工作原理
- Python老司机带你快速搞定日志分析工具
- 从零学习Vue - 02模板语法、el与data两种写法、mvvm模型、数据代理
- 毕业这五年走来,这些私藏Redis的最全知识点我贡献出来了
- Squid 缓存代理(二)---ACL访问控制、日志分析
热门文章
- 小丸子学Hadoop系列之——部署Hbase集群
- MATLAB 如何让图形变美?[第一期]
- 详解主流浏览器多进程架构:Chrome、IE
- 北航计算机考博经验,最新的北航考博经验
- 开发人员的人品问题 收藏
- 2017 ACM Arabella Collegiate Programming Contest A. Sherlock Bones GYM101350A
- H264(AVC)/H265(HEVC)/H266(VVC):GOP的区别
- PAMI2012跟踪算法TLD的配置(Tracking-learning-detection)
- windows内码、外码、字符映射表
- 2020年美容师(中级)报名考试及美容师(中级)考试总结