1.前台代码:

$("#batchdelete").click(function(){

$.ajax({
type: "post",
url: url,
data: "",
dataType: "json",
success: function(msg){
var records = msg['records'];
if (msg['flag'] == "success") {
showDialog("成功删除" + records + "条记录!", function(){
var url = "${base}/apppublish/queryChannelInfo.htm?channeltype=" + $("#channeltype").val() + "&pageNumber=" + ${pageNumber} + "&appid=" + ${appid} + "&channelname=" + $("#channelname").val() + "&channelcode=" + $("#channelcode").val();
window.location.href = url;
});
}
else {
showDialog("删除失败!");
}
},
error: function(){
alert("error");
}
});

}

2.后台代码:

@RequestMapping(value = "/batchdeleteChannelInfo.htm")
public @ResponseBody Map<String, Object> batchdeleteChannelInfo(HttpServletRequest request, HttpServletResponse response,
@RequestParam("ids") String ids, @RequestParam("channeltype") int channelType){

Map<String, Object> result = new HashMap<String, Object>();

result.put("flag", flag);
result.put("records", Integer.valueOf(records));
return result;

}

@RequestParam:绑定请求参数到方法参数.required默认是true.

@ResponseBody:与@RequestBody类似.这个注解放在一个方法上,表明返回类型应该直接写入到HTTP响应体(而不是放入Model或解析为视图名字),return返回的数据就会直接传到前台,在ajax的success函数里的参数就可以接到,这样写替代了在方法上添加HttpServletResponse response这样的写法,而且也省略了

try {
   response.setContentType(type + ";charset=UTF-8");
   response.setHeader("Pragma", "No-cache");
   response.setHeader("Cache-Control", "no-cache");
   response.setDateHeader("Expires", 0);
   response.getWriter().write(content);
   response.getWriter().flush();
  } catch (IOException e) {
   log.error("IOException:", e);
  }
  return null;这样的写法,所以方便多了。

@ModelAttribute有两种使用场景.
1.放在方法的参数.@ModelAttribute映射一个model属性到具体的方法参数.这就是controller如何获得一个引用到这个对象来hold住表单输入的数据.此参数可以声明为表单返回对象的具体类型而不是java.lang.Object泛型,从而增强类型安全.
2.放在方法级别上.提供为model引用数据.这种用法签名能包含@RequestMapping标注的同样的类型.
@ModelAttribute标注的方法能在@RequestMapping标注的方法之前执行.这样有效在预放具有特定属性的隐式Model,往往从数据库加载.

在spring mvc中利用ajax批量删除数据的更多相关文章

  1. 基于注解的spring mvc 中使用 ajax json 的model

    在 Spring mvc3中,响应.接受 JSON都十分方便. 使用注解@ResponseBody可以将结果(一个包含字符串和JavaBean的Map),转换成JSON. 使用 @RequestBod ...

  2. Think5之ajax批量删除数据功能

    //批量删除学员信息 public function deleteMany() { $id = input('post.'); //判断id是数组还是一个数值 if(is_array($id)){ f ...

  3. MVC中利用ViewBag传递Json数据时的前端处理方法

    用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval() ...

  4. Spring MVC中处理静态资源的多种方法

    处理静态资源,我想这可能是框架搭建完成之后Web开发的”头等大事“了. 因为一个网站的显示肯定会依赖各种资源:脚本.图片等,那么问题来了,如何在页面中请求这些静态资源呢? 还记得Spring MVC中 ...

  5. Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

    Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx" ...

  6. spring mvc中实现csrf安全防御简记

    1.csrf是什么 csrf全称是Cross-site request forgery,http://en.wikipedia.org/wiki/Csrf 危害:使受害用户在不经意间执行了不是用户意愿 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

  8. Servlet的生命周期以及在Spring MVC中调用流程

    接触Web时间比较久,虽然知道Servlet的生命周期但是理解却还是不够,今天刚好debug代码涉及这块就利用余下时间研究了一下. Servlet的生命周期以及处理浏览器请求的过程.Servlet接口 ...

  9. 解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容

    解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容 解决方案 在 Web.xml文件中 加入以下代码 <!--解决ajax Put与Del请求无法接收到传输的内容-- ...

随机推荐

  1. TreeSet与TreeMap排序

    1.TreeSet原理: /* * TreeSet存储对象的时候, 可以排序, 但是需要指定排序的算法 *  * Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存 ...

  2. [Math Review] Statistics Basic: Sampling Distribution

    Inferential Statistics Generalizing from a sample to a population that involves determining how far ...

  3. 用jmeter进行多用户并发压力测试

    测试要求如下,多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence.恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程 ...

  4. Redis主从复制、哨兵模式

    1.部署主从 环境:主IP:10.0.0.15,端口6379;从IP:10.0.0.16,端口6379. 原理:基于RDB持久化的功能来实现主从复制的功能. a.linux-redis1(10.0.0 ...

  5. HashSet、LinkedHashSet和TreeSet

    关键技术: HashSet采用散列函数对元素进行排序,是专门为快速查询而设计的.存入HashSet的对象必须定义hashCode方法. TreeSet采用红黑树的数据结构进行排序元素,使用它可以从Se ...

  6. luogu P3817 小A的糖果

    题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. 输入输出格式 输入格 ...

  7. 八. 输入输出(IO)操作5.面向字节流的应用

    文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符, ...

  8. USING CHARLES FROM AN IPHONE

    USING CHARLES FROM AN IPHONE 从系统偏好->高级来查看ip地址即可 To use Charles as your HTTP proxy on your iPhone ...

  9. [置顶] kubernetes--Init Container

    概念 Init Container就是做初始化工作的容器.可以有一个或多个,如果有多个,这些 Init Container 按照定义的顺序依次执行,只有所有的InitContainer 执行完后,主容 ...

  10. python gzip压缩

    1 import urllib2 2 from StringIO import StringIO 3 import gzip 4 5 def loadData(url): 6 request = ur ...