SpringMVC使用进阶-内置对象和跳转

SpringMVC(3)——SpringMVC域对象 进入上图的步骤五的代码块,进入到 org\springframework\web\servlet\DispatcherServlet.java 这个类,发现这个ModelAndView类型的mv变量接收了被一个ha.handle方法执行后返的返回值,而这个ha.handle方法最终也会调用请求控制器的方法里面方法,最终请求控制器返回的还是ModelAndView类型对象被mv变量接收。说明:对Map操作,就是像往request域对象操作共享数据一样,然后返回字符串告诉视图渲染器即可,下面演示会更加清楚。 阅读详情

内置对象和页面跳转是web开发中比较重要的组成部分,springmvc作为新生代的框架,对这方面的支持也还算不错,这次着重分享跳转方式和内置对象的使用

一   页面跳转

页面跳转分为客户端跳转和服务端跳转两种,在springmvc中使用跳转是比较简单的,只需在return后面写就可以了

(1)客户端跳转

return "redirect:user.do?method=reg5";  
return "redirect:http://www.baidu.com"; 

(2)服务端跳转
return "forward:index.jsp";
return "forward:user.do?method=reg5"; 


二  内置对象

springmvc中也可以像servlet那样使用内置对象,同时也有自己独立的写法,先来看看springmvc中运用传统方式使用内置对象

@RequestMapping(params="method=reg2")
public String reg2(String uname,HttpServletRequest req,ModelMap map){
		req.setAttribute("a", "aa");
		req.getSession().setAttribute("b", "bb");
		return "index";
}

这段代码和servlet比较类似,但是springmvc的写法就更简单,如下所示

ModelMap 和request内置对象的功能一致

@SessionAttributes      看名字就可以看出这个注解和session有关,主要用于将ModelMap中指定的属性放到session中,可以参照下面的事例代码

@Controller
@RequestMapping("/user.do")
@SessionAttributes({"u","a"})   //将ModelMap中属性名字为u、a的再放入session中。这样,request和session中都有了。
public class UserController  {
	@RequestMapping(params="method=reg4")
	public String reg4(ModelMap map) {  		System.out.println("HelloController.handleRequest()");
		map.addAttribute("u","uuuu");  //将u放入request作用域中,这样转发页面也可以取到这个数据。
		return "index";
	}
}

@ModelAttribute  这个注解可以和@SessionAttribute配合使用,可以将ModelMap中属性的值通过该注解自动赋给指定变量

如下所示

@RequestMapping(params="method=reg5")
public String reg5(@ModelAttribute("u")String uname,ModelMap map) { //[将属性u的值赋给形参uname]
		System.out.println("HelloController.handleRequest()");
		System.out.println(uname); 
		return "index";
}


最后总结一下ModelAndView模型视图类,见名知意,从名字上我们可以知道ModelAndView中的Model代表模型,View代表视图。即,这个类把要显示的数据存储到了Model属性中,要跳转的视图信息存储到了view属性。但是常规情况下一般是返回字符串。为了看得更明白我也把使用ModelAndView方式返回页面的代码贴出来。


@RequestMapping(params="method=login3")
public ModelAndView login3(){
		ModelAndView mv=new ModelAndView();
		mv.setViewName("index2");
		return mv;
}


是不是都很简单呢,下次打算分享的内容是springmvc文件上传。

SpringMVC实现页面的跳转:转发、重定向 1、Servlet实现页面跳转 Servlet实现页面的跳转有2种方式:转发与重定向。 1.1 转发 转发是在服务器端起作用的,当使用 forward() 方法时,Servlet 容器传递HTTP请求,从当前的 Servlet 或 JSP,此过程仍然在 request 的作用范围内。转发后,浏览器的地址栏内容不变。 转发使用 HttpServletRequest 对象的 forward()... 阅读详情

相关推荐

2017全国大学生电子设计大赛B题 | 板球控制系统(四)机械设计相关

转载请注明出处。   转眼2019了诶,可能有些同学又该问了,哇向阳哥,你这个鸽子放的好,转眼大半年了一年都没更新,我也知道啊,说好的源码呢,挖的机械的坑呢?咕咕咕咕我也不想啊,我这不是懒吗!过年有空了,又到了收红包泡妹子玩游戏.......呸,学习准备比赛码代码的时候了,终于有点空闲,于是乎今晚先把机械的大坑填了。     咱话先说在最前面。机械这玩意,靠经验,也考想象力,更要命的还是出了...

王向阳的博客 3万+

SpringMVC的理解(二)

1、如图,这是使用内置对象的方法进行收参,方式与servlet的收参方式相同,都是使用getParameter()方法进行收参和存入作用域,只不过SpringMVC需要在方法的参数里先声明内置对象。如图,session也是利用相同的api存入数据和收参,但是不同的是session的作用域比request的作用域涉及范围更广泛,更好用。1、转发,转发与servlet的转发一样,但是SpringMVC的转发是在return的值内。重定向,重定向与转发的形式一样,只不过是转发携带数据,而转发没有而已。

m0_65467786的博客 333

如何用谷歌插件Apollo.io高效开发客户?手把手教你避开常见坑点

本文详细介绍了如何利用谷歌插件Apollo.io高效开发外贸客户,包括核心功能解析、免费额度最大化利用策略、多插件协同技巧以及常见陷阱规避方法。通过Apollo.io的智能匹配算法和庞大数据库,外贸从业者可以精准锁定目标客户,提升开发效率。

banana的博客 885

SpringMVC----九大内置对象&&四大作用域

一.九大内置对象 二.四大作用域

Miracle_Gaaral的博客 2070

RTAB-MAP实战:用Realsense D435i在ROS中搭建室内3D地图(附避坑指南)

本文详细介绍了如何在ROS环境下,使用Intel Realsense D435i深度相机和RTAB-MAP算法进行室内3D地图构建的完整实战流程。内容涵盖环境配置、核心节点数据流解析、关键参数调优、地图保存与重定位,并提供了实用的避坑指南,帮助机器人开发者和研究者快速实现稳定的视觉SLAM应用。

weixin_29095049的博客 490

Yolov2 训练时anchor是如何使用的?build_target

0.简略描述 1.将真值检测框变换到特征图尺度上 2.计算以特征图每个网格中心为中心点时所有锚框与真值检测框的交并比 3.取与真值检测框交并比最大的锚框的id,及真值检测框中心所在cell的id,有此,可将真值检测框与预测结果对应起来 4.计算位置回归损失,置信度损失,分类损失 1,网络的输出 图1 yolov2 网络对于检测框位置大小的输出是: 对于1个batch网络的输出的shape为[batch_size, H*W*num_anchors, 5+num_classes], 其中: num_

机器人视觉感知 2816

SpringMvc内置的九大组件

1、注解 @Controller2、实现Controller接口3、实现HttpRequestHandler第二种和第三种实现Controller必须在配置文件中定义bean信息,定义的名称必须加上"/"

weixin_47068446的博客 1367

RT-DETR-R18 的轻量化 Trick:剪枝与量化在模型中的应用

RT-DETR-R18轻量化技术通过结构化剪枝、混合精度量化和知识蒸馏的组合优化,实现了显著模型压缩效果。摘要如下: RT-DETR-R18模型通过创新轻量化技术组合,在保持46.2% mAP精度的前提下,将模型大小压缩至2.1MB(压缩率78%),计算量降至3.2 GFLOPs(减少78.2%),实现移动端28ms实时推理(加速37.8%)。核心技术包括:1)渐进式结构化剪枝系统,通过L1范数重要性评估和动态剪枝调度;2)混合精度量化策略,对关键层保留FP16精度;3)教师-学生知识蒸馏框架保持模型表达能

走向CTO的路上... 1190

SpringBoot中最常用的5个内置对象

ApplicationContext(应用上下文)是SpringBoot中的一个核心接口,它继承自BeanFactory接口。ApplicationContext主要负责管理Bean的生命周期、依赖注入、事件发布等功能。在SpringBoot应用中,我们通常会使用AnnotationConfigApplicationContext或者XmlWebApplicationContext作为ApplicationContext的实现类。

万猫学社 3444

粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解

粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm - EA)。

猫敷雪 893

什么是垂直同步?电脑快速消除屏幕撕裂与提升游戏性能的方法 垂直同步、游戏画面撕裂、游戏优化、VSync、FPS、FreeSync、G-Sync、显卡驱动更新、游戏画质、输入延迟

看这张动图,左边的画面出现了明显“切开”的断层现象,而右边画面非常流畅,没有撕裂。这正是「垂直同步」开关的区别。:每秒生成多少帧图像。比如 60FPS 表示一秒钟显示 60 张图片。刷新率(Refresh Rate):显示器每秒刷新几次画面,单位是赫兹(Hz)。60Hz 表示每秒刷新 60 次。参数说明FPS显卡渲染速度(逻辑帧率)刷新率显示器的显示频率(物理限制)当 FPS 高于刷新率时,显卡渲染的画面来不及被显示器显示,导致撕裂。屏幕撕裂(Screen Tearing)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1346

SpringMVC后端Controller页面跳转的三种方式

常见的Web开发中,我们在使用SpringMVC框架时,经常遇到多种不同情况下不同的返回方式,有的多种返回页面的方式,也有的是多种返回数据到前端的方式,这篇文章主要总结常见Web开发中针对不同情况返回页面的方式。对于不同情况下,具有返回数据到前端的多种方式请参考我之前写过的一篇SpringBoot相关文章: SpringBoot系列教程(七十):SpringBoot的Controller四种方法返回值类型

Thinkingcao的专栏 2万+

【零基础学习CAPL】——CAN报文的发送(CRC——ChecSum值)

本章主要介绍带有CRC值的报文发送一般报文可使用CANoe的IG模块直接发送,但带有CRC值的报文就只能编写脚本进行发送,以下详细讲解在配合Panel面板情况下,如何进行带有循环冗余码的报文进行报文的发送。

LOVE135149的博客 1913

狂神说SpringMVC04:数据处理及跳转

狂神说SpringMVC系列连载课程,通俗易懂,基于Spring5版本(视频同步),欢迎各位狂粉转发关注学习。未经作者授权,禁止转载在上一节中,我们了解了控制器和Restful风格操作狂...

狂神说 9958

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SpringMVC四种跳转方式

本质还是两种跳转:请求转发和重定向,衍生出四种是请求转发页面,转发action,重定向页面,重定向action @RequestMapping("/one") public String one(){ System.out.println("这是请求转发页面跳转........."); return "main"; //默认是请求转发,使用视图解析器拼接前缀后缀进行页面跳转 } @RequestMapping("/two") publ...

懒起来 3641

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringMVC基础学习之页面跳转方式的简单使用

前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。 这个SpringMVC基础学习系列是用来记录我学习SpringMVC框架基础知识的全过程 (这个系列是参照B站狂神的SpringMVC最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!) 之后我将尽量以两天一更的速度更新这个系列,还没有学习SpringMVC框架的小伙

weixin_45301250的博客 3692

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SpringMVC中实现从controller跳转到controller

SpringMVC中实现从controller跳转到controller,controller跳转到页面controller跳转网页controller跳转到controllercontroller之间的跳转有四种方式 controller跳转网页 此处以简单的登录以及改操作等基本操作来实现跳转。因为WEB-INF文档下的jsp文件是无法直接通过浏览器来访问的,只能通过后台服务器跳转来实现。 登...

qq_41089854的博客 3172

springmvc页面跳转

springmvc页面跳转1. springmvc页面跳转的几种方式2. springmvc的Ajax与json 1. springmvc页面跳转的几种方式 使用springmvc的视图解析器,进行跳转。 @RequestMapping("/testString") public String testString(ModelMap modelMap){ System.out.println("01"); User user = new User("1","123

RestartJava的博客 1668

【drp 12】再识转发和重定向:SpringMVC无法跳转页面

最近再使用SpringMVC进行页面跳转的时候,不知道发生了什么,始终都无法正确跳转。后来问题解决了,发现是对于转发和重定向没有能很好的理解,以此写篇博客,权当做积累了! 一、基本配置 备注:只截取了几个比较关键的配置点 SpringMVC配置: <bean class="org.springframework.web.servlet.view.InternalResourceView

该怎么解释?我懒得解释 5882

SpringMVC中跳转方式与参数接收

3. SpringMVC中的跳转方式 # springmvc中跳转方式 1. 原始servlet技术中跳转方式 forward跳转: 请求转发 特点: 服务器内部跳转 跳转之后地址栏不变 一次跳转 跳转时可以使用request作用域传递数据 redirect跳转: 请求重定向 特点: 客户端跳转,跳转之后地址栏改变 多次跳转 跳转过程不能使用request作用域 注意:request作用域只能用于一次跳转 2. SpringMVC

qq_50313418的博客 2621

SpringMVC跳转方式

1.Forward转发 1.1相同controller不同方法 使用forward跳转到相同的控制器,使用springMVC的关键字forward 语法:return “forward:/跳转类上的@RequestMapping的路径/跳转类的方法@RequestMapping路径” @RequestMapping("/test2") public String test2(){ System.out.println("same Controller"); r

qq_38864315的博客 772

SpringMVC实现页面跳转

SpringMVC实现页面跳转 先在xml中配置前端控制器DispatcherServlet <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</s...

java程序员的博客 1799

springMVC和springBoot跳转页面的方式

不管是使用springMVC还时springBoot,在进行简单的页面跳转的时候,有两种情况: 1.在进行页面跳转的时候回携带请求数据,后端需要进行业务处理。 2.只是单纯的进行页面的跳转,不会进行任何业务的处理 对比使用springMVC和springboot对这两种情况的处理: 情况一:携带数据: springMVC和springBoot大致相同,都是通过controller层进行页面的跳转: 示例代码: @controller pubilc String pageControlelr(){

奋斗的小张同学 1016

SpringMVC的跳转方式(转发和重定向)和处理前端的提交数据

跳转方式一、在之前的servlet API的跳转二、SpringMVC的原理使用ModelAndView三、SpringMVC注解使用跳转 一、在之前的servlet API的跳转 1、通过HttpServletResponse进行输出 response.getWriter().println(“Hello,Spring BY servlet API”); 2、通过HttpServletResponse实现重定向 response.sendRedirect("/index.jsp"); 3、通过

LongKai_G 1793

springMVC跳转和传值

接上一篇:SpringMVC接收请求参数 1. 跳转 1.1 代码 后端控制器,跳转:forword和重定向redirect package com.lyx.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/jump") public class Forward

哈哈 1549

SpringMVC 跳转到不同的jsp目录

SpringMVC的控制层的分发器(Controller注解)通过返回view,然后结合视图处理器(viewResolver),最终跳转到指定目录的jsp。如果想在Controller的业务方法中跳转到不同的目录,例如跳转到error中error.jsp中。本文主要介绍SpringMVC在Controller的业务方法中如何跳转到不同的jsp目录。 spring.xml &amp;amp;amp;lt;!--开启spri...

qq_34651407的博客 1198
上一篇: SpringMVC的使用基础篇
下一篇: SpringMVC使用进阶-文件上传
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值