Controller 方法的返回值

来源:互联网 发布:网络运维 编辑:程序博客网 时间:2024/05/22 13:22


返回ModelAndView

方法体内需要定义ModelAndView,对Model和view分别进行设置

@RequestMapping(value="editItems.action",method={RequestMethod.GET,RequestMethod.POST})//限制http请求方法    public ModelAndView editItems()throws Exception{        //调用Service根据id查询商品        ItemsCustomer itemsCustomer = itemsService.findItemsCustomerById(1);        //返回 modelAndView        ModelAndView modelAndView = new ModelAndView();        //将商品信息放到model        modelAndView.addObject("itemsCustomer", itemsCustomer);        //商品修改页面        modelAndView.setViewName("/items/editItems");        return modelAndView;    }


返回String

case one

此时String表示的是逻辑视图名,而数据则通过形参中的model传送到页面

@RequestMapping(value="editItems.action",method={RequestMethod.GET,RequestMethod.POST})//限制http请求方法    public String editItems(Model model)throws Exception{        //调用Service根据id查询商品        ItemsCustomer itemsCustomer = itemsService.findItemsCustomerById(1);        model.addAttribute("itemsCustomer", itemsCustomer);        //将商品信息放到model        return "/items/editItems";    }

什么是逻辑视图名:真正视图(jsp路径)=前缀+逻辑视图名+后缀

case two

redirect重定向
重定向特点:浏览器地址发生变化,修改提交的request数据无法重新出传递到重定向的地址,因为request无法共享

//商品信息修改提交        @RequestMapping("editItemsSubmit.action")        public String editItemsSubmit()throws Exception{            //调用Service更新商品信息,页面需要传递商品信息过来            //重定向到商品查询列表            return "redirect:findItemsList.action";        }


case three

forward 转发
forward特点:浏览器地址不变,request可以共享

//商品信息修改提交        @RequestMapping("editItemsSubmit.action")        public String editItemsSubmit(HttpServletRequest request)throws Exception{            //调用Service更新商品信息,页面需要传递商品信息过来            //重定向到商品查询列表            return "forward:findItemsList.action";        }

测试request共享

//商品查询    @RequestMapping("/findItemsList.action")//建议将url与方法名一致。实现的是方法findItemsList与url进行映射    public ModelAndView findItemsList(HttpServletRequest request)throws Exception{        //测试forwardrequest共享        String id = request.getParameter("id");        System.out.println(id+"==============");        List<ItemsCustomer> itemsList = itemsService.findItemsList(null);        ModelAndView modelAndView = new ModelAndView();        //类似于request的setAttribute        modelAndView.addObject("itemsList", itemsList);        //指定视图        modelAndView.setViewName("/items/itemsList");        return modelAndView;    }


返回void
这里写图片描述