ajax传值controller怎么写,ajax向 controller传值(示例代码)

第一种传值:

controller中是几个单独的基本类型参数

@RequestMapping("update")

@ResponseBody//此注解不能省略 否则ajax无法接受返回值

public Map update(Long num, Long id, BigDecimal amount){

Map resultMap = new HashMap();

if(num == null || id == null || amount == null){

resultMap.put("result", "参数不合法!");

return resultMap;

} //xxx逻辑处理

resultMap.put("result", "操作成功");

return resultMap;

}

var params = {};

//params.XX必须与controller中的参数名称一致

//否则在controller中使用@RequestParam绑定

params.num = num;

params.id = id;

params.amount = amount;

$.ajax({

async:false,

type: "POST",

url: "price/update",//注意路径

data:params,

dataType:"json",

success:function(data){

if(data.result==‘SUCCESS‘){

alert("修改成功");

}else{

alert("修改失败,失败原因【" + data + "】");

}

},

error:function(data){

alert(data.result);

}

});

第二种传值:

controller中是参数是实体bean,bean中属性都是基本数据类型

@RequestMapping("add")

@ResponseBody

public Map add(DataVo dataVo){

Map result = null;

if(dataVo.getNum() == null || StringUtils.isBlank(dataVo.geId())){

result = new HashMap();

result.put("msg", "参数不合法!");

return result;

}

//xxx业务逻辑处理

return result;

}

public class DataVo {

private Long num;

private String id;

getset方法

}

var params = {};

params.num = $("#num").val();

params.id = $("#id").val();//注意params.名称 名称与实体bean中名称一致

$.ajax({

type: "POST",

url: "price/add",

data:params,

dataType:"json",

//contentType: "application/json; charset=utf-8",//此处不能设置,否则后台无法接值

success:function(data){

if(data.msg != ""){

alert( data.msg );

}

},

error:function(data){

alert("出现异常,异常原因【" + data + "】!");

}

});

第三种传值:

controller中是参数是实体bean,bean中属性有数组

@RequestMapping("add")

@ResponseBody//此处不能省略 否则ajax无法解析返回值

public Map add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,否则无法接值

Map resultMap = new HashMap();

//业务逻辑处理

return resultMap;

}

public class DataVo {

private BigDecimal[] nums;

private String id;

getset方法

}

jquery ajax 需要jquery json的插件 进行json序列化,我这里使用了json.js

且配置

datatype:"json",

contentType: "application/json; charset=utf-8",

var params = {};

params.nums = [];

params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同

var prices = document.getElementsByName("prices");//prices 是name="prices"一组input标签

for (var i = 0; i < prices.length; i++) {

params.nums[i] = prices[i].value;

}

$.ajax({

type: "POST",

url: "price/add",

data:JSON.stringify(params),//json序列化

datatype:"json", //此处不能省略

contentType: "application/json; charset=utf-8",//此处不能省略

success:function(data){

alert(data);

},

error:function(data){

alert(data)

}

});

实现一个插入图表的功能,图表的属性包括名称,类型和网址

$(function () {

$(‘#addModal .addbtn‘).on(‘click‘, function (e) {

var form = $(e.currentTarget).parents(‘.modal‘).find(‘form‘);

var data = {

name: form.find(‘input‘)[1].value,

type: form.find(‘input‘)[0].value,

src: form.find(‘input‘)[2].value

};

$.ajax({

contentType: "application/json;charset=utf-8",

url: "/api/charts",

type: "post",

data: JSON.stringify(data),

success: function (data) {

console.log(data);

}

})

})

})

//添加图表

@RequestMapping(value = "/charts", method = RequestMethod.POST)

public ApiResponse addChart(@RequestBody Chart chart) {

chartService.insert(chart);

List results = new ArrayList();

results.add(chart);

return success(1, results);

}

还有一个问题就是前端插入的时候不可能出现id,而Chart对象的属性包括id,name,type,src。

在建表的时候我创建了一个序列vis_chart_id用于id自增,写sql的插入图表的时候只需要写:

insert into vis_chart(id,name,type,src) values(vis_chart_id.nextval,:name,:type,:src)

然而这种方法时不可行的,在前端获取时一直会报错,id的位置为null,

想想也是,前端数据都没有作为一个完整的对象传入,肯定是不能成功的。

步骤如下:

1.首先在dao里面创建一个方法叫getSequence(),获取下一次sequence的值用作新插入的图表的id

@SqlQuery("select vis_chart_id.nextval from dual")

@Mapper(IntegerMapper.class)

Integer getSequence();

此时要注意将insert方法中的SQL语句改成

@SqlUpdate("insert into vis_chart(id,name,type,src) values(:id,:name,:type,:src)")

//插入chart

void insert(@BindBean Chart chart);

2.然后在service中将id赋给chart

public void insert( Chart chart){

ChartDao chartDao = dbi.onDemand(ChartDao.class);

Integer id = chartDao.getSequence();

chart.setId(id);

chartDao.insert(chart);

}

3.这样Controller调用insert方法的时候就会chart就会有id啦

//添加图表

@RequestMapping(value = "/charts", method = RequestMethod.POST)

public ApiResponse addChart(@RequestBody Chart chart) {

chartService.insert(chart);

List results = new ArrayList();

results.add(chart);

return success(1, results);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将文件拖到docker容器里,将docke 容器里文件拖到宿主里

docker将/root/shell目录下的putty.exe复制到容器内部&#xff1a; 查看容器ID&#xff1a; docker ps 复制&#xff1a; docker cp /root/shell/putty.exe 容器ID:/root docker将容器内部的/root/shell/payload.exe复制到宿主里&#xff1a; docker cp b8d6b6b6296d:/root…

css 控制溢出文本显示省略号效果

同时应用&#xff1a; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 实现了所想要得到的溢出文本显示省略号效果&#xff1a;转载于:https://www.cnblogs.com/wyblog/archive/2011/09/02/2163547.html

前序遍历m-ary树_在Ruby中使用ary [start,length]- object进行数组元素分配

前序遍历m-ary树In the last article, we have learnt how we can add an object as an element to the object of Array class and we did that with the help of Array_instance[index] operator? That was also one of the ways to assign elements to the Array instances…

方法之输出星型及其调用

package asdaaaa; import java.util.Scanner;//引用扫描仪Scanner&#xff0c;创建键盘录入对象&#xff1b; public class adasdasd { public static void main(String[] args) { Scanner anew Scanner(System.in); System.out.println(“请输入行数&#xff1a;”); in…

ajax 如何禁止 预检请求,如何跳过“选项”预检请求?

我开发了一个PhoneGap应用程序&#xff0c;现在将其转换为移动网站。除了一处小故障&#xff0c;一切都可以顺利进行。我通过POST请求使用了某个第三方API&#xff0c;该API在该应用中可以正常运行&#xff0c;但在移动网站版本中却无法运行。仔细查看后&#xff0c;看来Angula…

拜托,出来混有点专业精神好不好

2007年5月25日的安徽日报头版中武警防汛大演练照片如下&#xff1a;很明显的最上面的两艘船是一样的&#xff0c;甚至连激起的浪花都相同&#xff0c;真不知道ps这幅图的同学当时怎么想的&#xff0c;一点专业精神都没有撒&#xff5e;再看看下面的盗版光碟《十面埋妇》的包装&…

WF事件驱动(5)

之前&#xff0c;我通过4篇文章介绍了在WF4中开发基于事件的工作流的范例。请参考下面的链接。 这一篇是这个系列的最后一篇&#xff0c;介绍如何通过配置文件&#xff0c;而不是代码的方式启动宿主。这在现实工作中是相当有用的&#xff0c;请大家参考下面的实例。 【注意】有…

合页损失,铰链损失_多点铰链损失功能 使用Python的线性代数

合页损失,铰链损失Hinge Loss is a loss function used in Machine Learning for training classifiers. The hinge loss is a maximum margin classification loss function and a major part of the SVM algorithm. 铰链损失是机器学习中用于训练分类器的损失函数。 铰链损失…

远控免杀专题8---BackDoor-Facktory免杀

0x01 免杀能力一查表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

Visual Studio 2010旗舰版在安装Windows Phone 7 SDK后项目模版里没有Windows Phone 项目解决办法...

这个方法解决安装Windows Phone Develop Tools自带的Visual Studio 2010 Express for Windows Phone后&#xff0c;在已安装的Visual Studio 2010旗舰版中没有Windows Phone 7项目的情况。 1.找到Express版的模板&#xff0c;通常在&#xff1a; C:\Program Files (x86)\Micros…

不用ajax实现动态分页,详解ajax +jtemplate实现动态分页

jtemplate是一个基于JQuery的模板引擎插件&#xff0c;功能非常强大&#xff0c;有了她你就再不用为使用JS绑定数据集而发愁了。主要思路&#xff0c;复制textarea作为模板&#xff0c;ajax加载json数据&#xff0c;添加模板&#xff0c;绑定数据&#xff0c;更新加载更多事件。…

程序员每天每周每月每年该做的事

1、总结自己一天任务的完成情况  最好的方式是写工作日志&#xff0c;把自己今天完成了什么事情&#xff0c;遇见了什么问题都记录下来&#xff0c;日后翻看好处多多。 2、考虑自己明天应该做的主要工作  把明天要做的事情列出来&#xff0c;并按照优先级排列&#xff0c;第…

C和汇编----存储类别、链接和内存管理

0x01 存储类别 1、作用域 一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或文件作用域。 1.1 块作用域&#xff1a; 块是用一对花括号括起来的代码区域。比如函数体就是一个块。定义在块中的变量具有块作用域&#xff0c;块作用域变量的可见范围是从定义处到包…

倒三角(随即输入)

package wsq; import java.util.*; public class wsqyy {public static void main(String[] args) {Scanner wsqnew Scanner(System.in);int xwsq.nextInt();int i,j,k;for(i0;i<x;i)//第一个for循环控制行数&#xff1b;{for(j0;j<i;j)//第二个for循环控制输出&#xff…

调用向量的第i维分量| 使用Python的线性代数

Prerequisite: Linear Algebra | Defining a Vector 先决条件&#xff1a; 线性代数| 定义向量 Linear algebra is the branch of mathematics concerning linear equations by using vector spaces and through matrices. In other words, a vector is a matrix in n-dimensi…

EYQiPa,梦开始的地方

早在2003年&#xff0c;就有EYQiPa的设想&#xff0c;曾经尝试过去做它&#xff0c;不过总是不了了之。也许是当时技术能力不达标&#xff0c;也许是一直以来的对待事物缺少持之以恒的心态&#xff0c;时光如水&#xff0c;转眼8年过去了&#xff0c;这8年当中&#xff0c;总是…

结合struts和hibernate谈J2EE架构的数据表示

结合struts和hibernate谈J2EE架构的数据表示 在 struts hibernate 这种结构中&#xff0c;是不应该把Hibernate产生的PO直接传递给JSP的&#xff0c;不管他是Iterator&#xff0c;还是List&#xff0c;这是一个设计错误。 我来谈谈在J2EE架构中各层的数据表示方法&#xff1a;…

服务器appcrash的问题怎么修复,ghost win7出现appcrash的问题怎么修复

ghost win7出现appcrash的问题怎么修复一位用户说在win7旗舰版电脑中运行程序会出现appcrash错误的提示&#xff0c;appcrash出错想必很多用户都遇到过&#xff0c;也不知道什么原因引起的&#xff0c;导致程序无法正常运行。那么有什么方法可以解决ghost系统win7运行程序出现a…

远控免杀专题9 --- Avet免杀

0x01 免杀能力一查表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

字符串startswith_JavaScript字符串startsWith()方法与示例

字符串startswith字符串startsWith()方法 (String startsWith() Method) startsWith() method is a string method in JavaScript, it is used to check whether a string starts with a specified substring or not. startsWith()方法是JavaScript中的字符串方法&#xff0c;用…