0
点赞
收藏
分享

微信扫一扫

Day25SSM之SpringMVC 方法返回值类型***


处理器的返回值介绍

Day25SSM之SpringMVC 方法返回值类型***_mvc

  • (1)Servlet将结果返回浏览器
    转发:带数据
    重定向:不带数据
    异步:json数据发给页面的js,js组织标签显示
    ​​​Servlet里面编写响应浏览器的代码都要调用response​
  • (2)springmvc的方法设计了多种返回值类型
    》ModelAndView
    》void
    》String :请求转发,重定向,json数据

处理器的返回值-ModelAndView

  • (1)ModelAndView 是SPringMVC提供模型视图
  • (2)作用
    设置数据 addObject(key,value)
    设置页面setViewName(逻辑视图) 就是文件的名称

@Controller
public class Demo02ReturnController {
//public 返回值类型 方法名(参数类型 参数名){}
@RequestMapping(path = "demo01.action",method = {RequestMethod.POST,RequestMethod.GET})//回显页面
public ModelAndView test01(){//
Person p1 = new Person(1,"jack","1234");
Person p2 = new Person(2,"rose","1234");
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);

//使用ModelAndView实现请求转发
ModelAndView mv = new ModelAndView();
mv.addObject("list",list);
mv.setViewName("demo04_update_persons");//前缀+逻辑视图+后缀
//物理视图 真正的文件地址 /WEB-INF/jsp/demo04_update_persons.jsp
//物理视图 = 前缀+逻辑视图+后缀
return mv;
}
}

处理器的返回值-void

  • (1)方法返回值类型写上void
    此时,参数写上request,调用request带设置参数与请求转发或者重定向
  • (2)后台代码
  • (3)没有体现springmvc的优势

Demo02ReturnController

@RequestMapping(path="demo02.action",method = {RequestMethod.GET,RequestMethod.POST})
public void test02(HttpServletRequest req, HttpServletResponse resp)throws Exception{
//请求转发
req.setAttribute("name","请求转发");
req.getRequestDispatcher("demo05.jsp").forward(req,resp);
}

处理器的返回值-String

  • (1)方法返回值类型写上String
    方法内返回 页面名称
  • (2)如果携带数据呢?
    方法参数写上Model,比ModelAndView 少了View

req.setAttriibute(key,val)
req....forward(req,resp)

》Model是SpingMVC提供的一个模型类,该类不需要自己创建对象,系统自动创建

  • (3)Model作用
    Model可以用来向页面传递参数
  • (4)后台代码
    model.addAttribute(“item”, item);

@RequestMapping(path="demo03.action",method = {RequestMethod.GET,RequestMethod.POST})
public String test03(Model model){
//Model 可以设置数据,自动由视图解析器带到页面
model.addAttribute("data","wHelloWord");
return "success"; //逻辑视图 文件名
}

处理器的返回值-String-转发和重定向

  • (1)什么是逻辑视图与物理视图
    页面名称叫逻辑视图,不是真正的页面地址
    但是可以由视图解析器进行拼接,得到真正的页面地址,即物理视图
  • (2)返回值可以添加指令
    》1:forward 请求转发
    forward 指令:物理视图
    》2:redirect 重定向
    redirect 指令:项目访问路径+物理视图
    ​​​特点:视图解析器不对指令后的内容拼接前缀与后缀​
  • (3)指令也可以访问控制器方法

@RequestMapping(path="demo04.action",method = {RequestMethod.GET,RequestMethod.POST})
public String test04(Model model){
//Model 可以设置数据,自动由视图解析器带到页面
model.addAttribute("data","wHelloWord");
//return "forward:/WEB-INF/jsp/success.jsp"; //
//return "redirect:http://www.baidu.com"; //外网
//return "redirect:demo05.jsp"; //
return "redirect:demo01.action"; //
}


举报

相关推荐

0 条评论