SpringMVC

转发与重定向

可以通过redirect/forward:url方式转到另一个Action进行连续的处理。

可以通过redirect:url 防止表单重复提交 

写法如下:

return "forward:/order/add";

return "redirect:/index.jsp";

 

带参数重定向--RedirectAttributes

用户保存或修改后,为了防止用户刷新浏览器(F5)导致表单重复提交,一般在保存或修改操作之后会redirect到一个结果页面(不是forward),同时携带参数,如操作成功的提示信息。因为是Redirect,Request里的attribute不会传递过去。Spring在3.1才提供了这个能力--RedirectAttributes。 反复按F5,操作成功的提示信息也不会再次出来(总共只出现一次),效果很理想。

 

1  public String save(@ModelAttribute("group") Group group, RedirectAttributes redirectAttributes) {   
2     accountManager.saveGroup(group);   
3     redirectAttributes.addFlashAttribute("message", "操作成功");   
4     return "redirect:/account/group/";   
5 }
1  public String save(@ModelAttribute("group") Group group, RedirectAttributes redirectAttributes) {  
2     accountManager.saveGroup(group);  
3     redirectAttributes.addFlashAttribute("message", "操作成功");  
4     return "redirect:/account/group/";  
5 } 

处理ajax请求

1、引入下面两个jar包,我用的是1.7.2,好像1.4.2版本以上都可以,下载地址: http://wiki.fasterxml.com/JacksonDownload

jackson-core-asl-1.7.2.jar 

jackson-mapper-asl-1.7.2.jar

 

2、spring的配置文件中要有这一行,才能使用到spring内置支持的json转换。如果你手工把POJO转成json就可以不须要使用spring内置支持的json转换。

<mvc:annotation-driven />

 

3、使用@ResponseBody注解

 

 

 /**  
 * ajax测试  
* http://127.0.0.1/mvc/order/ajax  
 */  
  
@RequestMapping("/ajax")   
@ResponseBody  
public Object ajax(HttpServletRequest request){   
    List<String> list=new ArrayList<String>();   
    list.add("电视");   
nbsp;       list.add("洗衣机");   
    list.add("冰箱");   
    list.add("电脑");   
    list.add("汽车");   
    list.add("空调");   
    list.add("自行车");   
    list.add("饮水机");   
    list.add("热水器");   
    return list;   
} 

 

 /** 
 * ajax测试 
* http://127.0.0.1/mvc/order/ajax 
 */  
  
@RequestMapping("/ajax")  
@ResponseBody  
public Object ajax(HttpServletRequest request){  
    List<String> list=new ArrayList<String>();  
    list.add("电视");  
nbsp;       list.add("洗衣机");  
    list.add("冰箱");  
    list.add("电脑");  
    list.add("汽车");  
    list.add("空调");  
    list.add("自行车");  
    list.add("饮水机");  
    list.add("热水器");  
    return list;  
} 

 

原文地址:https://www.cnblogs.com/yeszero/p/6708983.html