controller方法的返回值

1、返回值为ModelAndView

需要方法接受时,定义ModelAndView,将model和view分别进行设置

@RequestMapping("/queryItems")
public ModelAndView queryItems() throws Exception{
    //调用service查询数据库,查询商品列表
    List<ItemsCustom> itemsList = itemsService.findItemsList(null);    
    //返回ModeAndView
    ModelAndView modelAndView = new ModelAndView();
    //相当于request的setAttribute方法,在jsp页面中通过itemsList取数据
    modelAndView.addObject("itemsList", itemsList);                    
    //指定视图
    modelAndView.setViewName("items/itemsList");             
    return modelAndView;
}


2、返回值为String
如果controller方法返回String,
2.1、表示返回逻辑视图名。

真正的视图(jsp路径)= 前缀 + 逻辑视图名 + 后缀

@RequestMapping(value="/editItems", method={RequestMethod.POST, RequestMethod.GET})
public String editItems(Model model) throws Exception{
    ItemsCustom itemsCustom = itemsService.findItemsById(1);
    model.addAttribute("itemsCustom", itemsCustom);
    return "items/editItems";
}
    

2.2、redirect重定向
redirect重定向特点:浏览器地址栏中额的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后就重新进行request(request无法共享)
@RequestMapping("/editItemsSubmit")
public String editItemsSubmit() throws Exception{
    //重定向
    return "redirect:queryItems.action";
}

2.3、forword页面转发
forword进行页面转发特点:浏览器地址栏中额的url不变。request可以共享 。
@RequestMapping("/editItemsSubmit")
public String editItemsSubmit() throws Exception{
    //页面转发
    return "forward:queryItems.action";    
}
  
3、void
在controller方法形参上可以定义request和response,使用request或response指定响应结果:
3.1、使用request转向页面,如下:
request.getRequestDispatcher("页面路径").forward(request, response);

3.2、也可以通过response页面重定向:
response.sendRedirect("url")

3.3、也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值