转发:
1:添加成功跳转到成功页面,给出提示,失败跳转到失败页面 ---- jsp
2:添加成功后,跳转到查询的controller中 -- 另外一个程序,添加完成之后,执行查询所有的操作,跳转到所有的用户列表
3:在查询的controller中是否能够获取第一个controller中传递的参数
重定向:
1:添加成功之后重定向到页面,失败后也是定向到失败页面
2:使用重定向,跳转到controller中的其他方法
3:重定向跳转到第二个controller中,获取参数
注意:springmvc默认使用的就是转发技术,
完整的写法是:return “forward:/xx.jsp”; / - 指的是web目录,一层一层往下查找,注意:此时不走springmvc的试图解析器。
如果希望返回时走试图解析器的话,直接写一个简单的字符串即可,如:return “hello”;此时就会做视图的拼接。
转发到其他的方法:
完整的写法为: return “forward:/类上的路径/方法上的路径.do”; 这个是通用的。
如果调用方法和目标方法在同一个类中,则可以简化写法:return “方法上的路径.do”;
需求:添加一个用户信息,添加完成之后,访问查询
所有的方法,并且将刚刚添加的用户信息,添加到所有
用户信息的集合中,展示在页面上。
查询所有用户信息不接受参数。
可以使用request对象来传递参数
语法 : return “redirect:/xxx.jsp”
注意:重定向也需要 /
需求:用户登录错误之后重定向到登录页面
return “redirect:/类上的requestMapping / 方法上的requestMapping ”
需求:登录成功之后,重定向到另外一个controller中的查询所有用户的方法,返回所有用户的列表
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
一般都需要引入第三方的依赖
注意 :