第一种传值:
controller中是几个单独的基本类型参数
spring MVC-controller
[java] view plain copy
1. @RequestMapping("update")
2. @ResponseBody//此注解不能省略 否则ajax无法接受返回值
3. public Map<String,Object> update(Long num, Long id, BigDecimal amount){
4.
5. new HashMap<String, Object>();
6. if(num == null || agentId == null || amount == null){
7. "result", "参数不合法!");
8. return resultMap;
9. }
10. //xxx逻辑处理
11. "result", result);
12. return resultMap;
13. }
jQuery ajax
[java] view plain copy
1. var params = {};
2. //params.XX必须与Spring Mvc controller中的参数名称一致
3. //否则在controller中使用@RequestParam绑定
4. params.num = num;
5. params.id = id;
6. params.amount = amount;
7. $.ajax({
8. false,
9. "POST",
10. "price/update",//注意路径
11. data:params,
12. "json",
13. success:function(data){
14. if(data.result=='SUCCESS'){
15. "修改成功");
16. else{
17. "修改失败,失败原因【" + data + "】");
18. }
19. },
20. error:function(data){
21. alert(data.result);
22. }
23. });
第二种传值:
controller中是参数是实体bean,bean中属性都是基本数据类型
Spring MVC-controller
[java] view plain copy
1. @RequestMapping("add")
2. @ResponseBody//此处不能省略 否则ajax无法解析返回值
3. public Map<String,Object> add(DataVo dataVo){
4. null;
5. if(dataVo.getNum() == null || StringUtils.isBlank(dataVo.geId())){
6. new HashMap<String, Object>();
7. "msg", "参数不合法!");
8. return result;
9. }
10. //xxx业务逻辑处理
11.
12. return result;
13. }
实体bean DataVo
[java] view plain copy
1. public class DataVo {
2. /**
3. * 编号
4. */
5. private Long num;
6. /**
7. * id
8. */
9. private String id;
10.
11. public Long getNum() {
12. return num;
13. }
14. public void setNum(Long num) {
15. this.num = num;
16. }
17. public String getId() {
18. return id;
19. }
20. public void setId(String id) {
21. this.id = id;
22. }
23. }
jquery ajax
[java] view plain copy
1. var params = {};
2. "#num").val();
3. "#id").val();//注意params.名称 名称与实体bean中名称一致
4. $.ajax({
5. "POST",
6. "price/add",
7. data:params,
8. "json",
9. // contentType: "application/json; charset=utf-8",//此处不能设置,否则后台无法接值
10. success:function(data){
11. if(data.msg != ""){
12. alert( data.msg );
13. }
14. },
15. error:function(data){
16. "出现异常,异常原因【" + data + "】!");
17. }
18. });
19.
第三种传值:
controller中是参数是实体bean,bean中属性有数组
Spring MVC-controller
[java] view plain copy
1. @RequestMapping("add")
2. @ResponseBody//此处不能省略 否则ajax无法解析返回值
3. public Map<String,Object> add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,否则无法接值
4. new HashMap<String, Object>();
5. //业务逻辑处理
6. return resultMap;
7. }
实体 DataVo
[java] view plain copy
1. public class DataVo {
2.
3.
4. private BigDecimal[] nums;
5. private String id;
6.
7. public Long getId() {
8. return id;
9. }
10.
11. public void setId(Long id) {
12. this.id = id;
13. }
14.
15. public BigDecimal[] getNums() {
16. return nums;
17. }
18.
19. public void setNums(BigDecimal[] nums) {
20. this.nums = nums;
21. }
22.
23. }
jquery ajax 需要jquery json的插件 进行json序列化,我这里使用了json.js
且配置
"json",
contentType: "application/json; charset=utf-8",
[java] view plain copy
1. var params = {};
2. params.nums = [];
3. params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同
4. var prices = document.getElementsByName("prices");//prices 是name="prices"一组input标签
5. for (var i = 0; i < prices.length; i++) {
6. params.nums[i] = prices[i].value;
7. }
8. $.ajax({
9. "POST",
10. "price/add",
11. //json序列化
12. "json", //此处不能省略
13. "application/json; charset=utf-8",//此处不能省略
14. success:function(data){
15. alert(data);
16. },
17. error:function(data){
18. alert(data)
19. }
20. });