return "cartSuccess" 和 return "redirect:/cart/cart.html" 的区别

来源:互联网 发布:得力3960考勤机软件 编辑:程序博客网 时间:2024/06/01 17:58

    

       在SpringMVC中转发和重定向最重要的区别就是:应用场景不同,换句话说,就是需求不同。

如果是直接放回到jsp页面:则如下边两种方式均可。

 1·

@RequestMapping("/add/{itemid}")public String addCart(@PathVariable long itemid,int num,HttpServletRequest request,HttpServletResponse response){//获取商品数量try {    cartservice.getItemByitemid(itemid, num, request, response);return "cartSuccess";} catch (Exception e) {e.printStackTrace();return "cartSuccess";}}
2·return "cartSuccess"同样可换成下边这种方式
 return "forward:cartSuccess";

以上两种都是转发的方式,实现效果一致。

注意:上边写法的前提是在SpringMVC的配置文件中已经配置好了前缀和后缀,这样在代码中就可省去无用代码。

 

但如果是在controllercontroller之间的跳转,就要用到redirect重定向了。如下:

/** * 修改购物车商品的数量 * @param itemId * @param num * @return */@RequestMapping("/update/num/{itemId}/{num}")@ResponseBodypublic String updateNum(@PathVariable long itemId,@PathVariable int num,HttpServletRequest request,HttpServletResponse response){TaotaoResult result = cartservice.updateCartItem(itemId,num,request,response);return "redirect:/cart/cart.html";}
    重定向后,该返回值就会去请求controller的注解RequestMapping为cart/cart的方法了。(.html是在web.xml文件中配置的拦截格式)。