SpringMVC跳转

本文详细介绍了SpringMVC中的转发和重定向,包括如何跳转到页面、controller,以及携带参数的方法。在转发中,可以使用request或session传递参数;重定向则可通过url拼接、session或RedirectAttributes实现参数传递。最后总结了转发和重定向的主要区别及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转发:

1:添加成功跳转到成功页面,给出提示,失败跳转到失败页面  ---- jsp

2:添加成功后,跳转到查询的controller中  -- 另外一个程序,添加完成之后,执行查询所有的操作,跳转到所有的用户列表

3:在查询的controller中是否能够获取第一个controller中传递的参数

重定向:

1:添加成功之后重定向到页面,失败后也是定向到失败页面

2:使用重定向,跳转到controller中的其他方法

3:重定向跳转到第二个controller中,获取参数

1:转发到页面

注意:springmvc默认使用的就是转发技术,

完整的写法是:return “forward:/xx.jsp”; / - 指的是web目录,一层一层往下查找,注意:此时不走springmvc的试图解析器。

如果希望返回时走试图解析器的话,直接写一个简单的字符串即可,如:return “hello”;此时就会做视图的拼接。

2:转发到controller

转发到其他的方法:

完整的写法为return forward:/类上的路径/方法上的路径.do; 这个是通用的。

如果调用方法和目标方法在同一个类中,则可以简化写法:return “方法上的路径.do”;

需求:添加一个用户信息,添加完成之后,访问查询

所有的方法,并且将刚刚添加的用户信息,添加到所有

用户信息的集合中,展示在页面上。

查询所有用户信息不接受参数。

3:转发携带参数

可以使用request对象来传递参数

2:重定向

1:重定向到页面

语法 : return redirect:/xxx.jsp

注意:重定向也需要 /

需求:用户登录错误之后重定向到登录页面

2:重定向到controller

return “redirect:/类上的requestMapping / 方法上的requestMapping ”

需求:登录成功之后,重定向到另外一个controller中的查询所有用户的方法,返回所有用户的列表

3:重定向携带参数问题

1:可以使用url的拼接, 在url后面通过?name=value的方式进行拼接

2:使用session传递具体的值, 在一个方法内存储在session的内容,可以在另外一个方法中获取

3:使用redirectAttributes 这个接口,在接受方法参数的前面要使用@ModelAttribute("key")来接受

3:springmvc两种跳转方式总结

转发:

转发到页面:return “forward:/具体的页面.jsp”; 如果配置了视图解析器的话同时页面也在指定的位置,return “视图名称”;

转发到方法:return “forward:/类上的路径/方法上的路径.do”, 如果目标方法是在一个类中的,可以直接写方法上的路径,return “queryUsers.do”;

参数携带:request,sesssion

重定向:

重定向到页面: return “redirect:/具体的页面.jsp”, / 指的是web文件夹

重定向到方法: return “redirect:/类上的路径/方法上路径”;

参数的携带:1,url的拼接,2:session, 3:RedirectAttributes,在接受的时候要使用@ModelAttribute("key")

2:响应时返回json

可以将java对象转换为json对象,在方法上添加@ResponseBody 注解即可

作用:java对象 --- 》 json对象

   Java集合  -- 》 json数组

补充:如果前端传递过来的是json对象呢

Json -- > java 对象 需要使用一个注解 @RequestBody

一般都需要引入第三方的依赖

注意 :

  1. 一般手动构建的是js对象,在前端中{}表示对象,但js对象不是json需要进行转换
  2. 将js对象转换为json数据使用 JSON.stringify(user);
  3. 使用ajax发送json数据的时候,只能使用post请求,同时需要指定类型为json

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值