function validate(){
//var username = $('#usernmae').val();
var username = document.getElementById("username").value;
alert(username);
$.ajax({
url:"register",
type:"post",
date:{username:username},
success:function(data){
$('#message').html(data);
}
});
我想问下这个data数据不管是写成"username"+username,还是{"username":username},在后台Java中都取不出来,是怎么回事??我想知道在ajax中数据到底是什么样的形式在传递。我在后台用的是stream的形式返回的text文本值,就是不清楚struts2跟ajax到底数据是怎么流转的!!!!11懂的人告诉我,最好有深入研究的!!!!!
31 个解决方案
#1
自己顶一下,总感觉知道ajax跟struts2之间,数据传递,到底数据在什么位置,是以什么样的形式存在的,有多人知道????????????????????????????????
#2
整个csdn我看下有没有高人能够弄懂这个问题!!!!这个问题,好多人都是模仿传递数据,但是数据到底在哪里,很多人都没搞清楚,国内有人知道吗?????
#3
request.getParameter
#4
说用request取值的,我想问你,到底怎么取值???我用的是jason{"username":username},你要我在后台用request.getParameter("username"),这种方式吗??????根本取不出来啊!!!!!request只对,“username=“+username这种形式有用吧??????????????到底有没有人会啊!!!!
#5
服务器端:
$phpArray是你存数据的数组
$phpArray = array();
array_push($phpArray, 你的数据);
最后别忘了
echo json_encode($phpArray);
客户端:
用$.ajax读取来之后,
$.ajax({
url: "your URL",
method: "POST/GET",
data: { param1: "", param2: ""}, //你想传递的参数
success: function(response){
var myData = eval("(" + response+")");
}
});
myData是JS的数组
$phpArray是你存数据的数组
$phpArray = array();
array_push($phpArray, 你的数据);
最后别忘了
echo json_encode($phpArray);
客户端:
用$.ajax读取来之后,
$.ajax({
url: "your URL",
method: "POST/GET",
data: { param1: "", param2: ""}, //你想传递的参数
success: function(response){
var myData = eval("(" + response+")");
}
});
myData是JS的数组
#6
在后台定义private String username;getter setter
#7
在我的理解是这样的:
ajax请求的入参格式应该是这样的{"name" : name, "age" : age, "frendList" : frendList};
然后在action获取:request.getParameter("name"); request.getParameter("age"); request.getParameter("frendList");
其中:name,age, FrendList 都应该是 json字符串 或 者普通的字符串
ajax请求的入参格式应该是这样的{"name" : name, "age" : age, "frendList" : frendList};
然后在action获取:request.getParameter("name"); request.getParameter("age"); request.getParameter("frendList");
其中:name,age, FrendList 都应该是 json字符串 或 者普通的字符串
#8
date:{"username":username},
按照这个格式试试。
给userName加上引号
按照这个格式试试。
给userName加上引号
#9
action中用request.getParameter("name"); 是没问题的
#10
没问题,那意思,jason是ajax跟java数据交换的唯一格式,就是一种规范。同时这个数据存放在了作用域里面,我这样理解,正确吗????
#11
我的理解:JSON只是传输数据的一种方式,楼上说的{"username":username}它是JSON的格式,因为JSON传输比较快,所以现在大家都再用JSON而传输数据并不只有JSON啊
参考http://www.jb51.net/article/48668.htm
参考http://www.jb51.net/article/48668.htm
#12
补充:传值方式有两种GET,POST传过去的值的形式有三种:字符串, XML, JSON
#13
data数据不管是写成"username"+username,还是{"username":username}
配置成字符串或者json对象都行,配置成字符串url键值对 jquery会直接传递,如果是json对象jquery会自动帮你转为url键值,最终传递的就是键值对对象,
获取不到自己检查服务器配置,如是否区分get/post请求什么的
配置成字符串或者json对象都行,配置成字符串url键值对 jquery会直接传递,如果是json对象jquery会自动帮你转为url键值,最终传递的就是键值对对象,
获取不到自己检查服务器配置,如是否区分get/post请求什么的
#14
#15
前端传送 json格式的数据,后端接收并解析(这个问题也困扰我很久,现在终于解决。。。
)
toSendJsonData_request.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'toJsonData.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="./jquery/jquery-1.11.1.min.js"></script>
</head>
<body>
This is my JSP page.
<br>
</body>
<script type="text/javascript">
$(function (){
var jsonStr = [ {
'name' : 'jim',
'age' : 20
}, {
'name' : 'king',
'age' : 26
}, {
'name' : 'jge',
'age' : 30
} ];
var url="./AjaxDemo/toGetJsonData_reponse.jsp";
$.ajax({
type : "post",
url : url,
dataType : 'json',
data : {
'mydata' : JSON.stringify(jsonStr)//注意一定要使用JSON.stringify (在IE6,IE7中不支持)
},
success : function(data,textStatus) {
alert(data.name);
},
error : function(xhr, status, errMsg) {
alert("操作失败!");
}
});
});
</script>
</html>
toGetJsonData_reponse.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page
import="net.sf.json.*"%>
<%
// String jsonStr = ServletActionContext.getRequest().getParameter(
// "mydata");
// String jsonStr = "[{'name':'jim','age':20},{'name':'king','age':26},{'name':'jge','age':30}]";
String jsonStr = request.getParameter("mydata");
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
String name = "";
String age = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonJ = jsonArray.getJSONObject(i);
name = jsonJ.getString("name");
age = jsonJ.getString("age");
}
%>{"name":"<%=name%>"}
toSendJsonData_request.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'toJsonData.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="./jquery/jquery-1.11.1.min.js"></script>
</head>
<body>
This is my JSP page.
<br>
</body>
<script type="text/javascript">
$(function (){
var jsonStr = [ {
'name' : 'jim',
'age' : 20
}, {
'name' : 'king',
'age' : 26
}, {
'name' : 'jge',
'age' : 30
} ];
var url="./AjaxDemo/toGetJsonData_reponse.jsp";
$.ajax({
type : "post",
url : url,
dataType : 'json',
data : {
'mydata' : JSON.stringify(jsonStr)//注意一定要使用JSON.stringify (在IE6,IE7中不支持)
},
success : function(data,textStatus) {
alert(data.name);
},
error : function(xhr, status, errMsg) {
alert("操作失败!");
}
});
});
</script>
</html>
toGetJsonData_reponse.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page
import="net.sf.json.*"%>
<%
// String jsonStr = ServletActionContext.getRequest().getParameter(
// "mydata");
// String jsonStr = "[{'name':'jim','age':20},{'name':'king','age':26},{'name':'jge','age':30}]";
String jsonStr = request.getParameter("mydata");
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
String name = "";
String age = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonJ = jsonArray.getJSONObject(i);
name = jsonJ.getString("name");
age = jsonJ.getString("age");
}
%>{"name":"<%=name%>"}
#16
为什么我在后台Servlet接收JSON时候报错了,说JSON文本格式要包含在'[ ]'括号,加了括号之后转成JSONArray后又array.size()只有一行......这是什么情况,是前台表格属性设置的问题吗?我用的是easyui datagrid。
#17
你好,新手学app开发,前端用ajax传送数据后,后台在myecplise中怎样用java取出数据啊?能给详细一点的解答吗?感谢!!
#18
能弱弱的说句,data写成date了吗?
#19
我怎么觉得楼上正解了
#20
哈哈哈,楼上的楼上正解了,要笑死了
#21
然而楼主已经不在了....
#22
#23
这帖子真是人才辈出。尤其是楼主。
#24
楼主
date:{username:username},
这句话 你犯了2个错误
第一个 是data 不是data
第二个 键值对 第二个值应该要加双引号或者单引号
date:{username:username},
这句话 你犯了2个错误
第一个 是data 不是data
第二个 键值对 第二个值应该要加双引号或者单引号
#25
数据读取顺序试试哦
#26
、
也是人才,‘’是data不是data‘’,有区别吗。。。
也是人才,‘’是data不是data‘’,有区别吗。。。
#27
哈哈,笑死!!都是人才
#28
不行了。 像我这种从来不评论的人 也得来一句
太人才了
太人才了
#29
看到这贴,我也是笑晕了。
将数据封装成date,后台肯定取不到啦。
将数据封装成date,后台肯定取不到啦。
#30
表示上次别人也问了我一样的问题,过去瞄了一下,也是date........
#31
楼主估计是被搞疯了。还是太年轻,一点都不淡定~
#1
自己顶一下,总感觉知道ajax跟struts2之间,数据传递,到底数据在什么位置,是以什么样的形式存在的,有多人知道????????????????????????????????
#2
整个csdn我看下有没有高人能够弄懂这个问题!!!!这个问题,好多人都是模仿传递数据,但是数据到底在哪里,很多人都没搞清楚,国内有人知道吗?????
#3
request.getParameter
#4
说用request取值的,我想问你,到底怎么取值???我用的是jason{"username":username},你要我在后台用request.getParameter("username"),这种方式吗??????根本取不出来啊!!!!!request只对,“username=“+username这种形式有用吧??????????????到底有没有人会啊!!!!
#5
服务器端:
$phpArray是你存数据的数组
$phpArray = array();
array_push($phpArray, 你的数据);
最后别忘了
echo json_encode($phpArray);
客户端:
用$.ajax读取来之后,
$.ajax({
url: "your URL",
method: "POST/GET",
data: { param1: "", param2: ""}, //你想传递的参数
success: function(response){
var myData = eval("(" + response+")");
}
});
myData是JS的数组
$phpArray是你存数据的数组
$phpArray = array();
array_push($phpArray, 你的数据);
最后别忘了
echo json_encode($phpArray);
客户端:
用$.ajax读取来之后,
$.ajax({
url: "your URL",
method: "POST/GET",
data: { param1: "", param2: ""}, //你想传递的参数
success: function(response){
var myData = eval("(" + response+")");
}
});
myData是JS的数组
#6
在后台定义private String username;getter setter
#7
在我的理解是这样的:
ajax请求的入参格式应该是这样的{"name" : name, "age" : age, "frendList" : frendList};
然后在action获取:request.getParameter("name"); request.getParameter("age"); request.getParameter("frendList");
其中:name,age, FrendList 都应该是 json字符串 或 者普通的字符串
ajax请求的入参格式应该是这样的{"name" : name, "age" : age, "frendList" : frendList};
然后在action获取:request.getParameter("name"); request.getParameter("age"); request.getParameter("frendList");
其中:name,age, FrendList 都应该是 json字符串 或 者普通的字符串
#8
date:{"username":username},
按照这个格式试试。
给userName加上引号
按照这个格式试试。
给userName加上引号
#9
action中用request.getParameter("name"); 是没问题的
#10
没问题,那意思,jason是ajax跟java数据交换的唯一格式,就是一种规范。同时这个数据存放在了作用域里面,我这样理解,正确吗????
#11
我的理解:JSON只是传输数据的一种方式,楼上说的{"username":username}它是JSON的格式,因为JSON传输比较快,所以现在大家都再用JSON而传输数据并不只有JSON啊
参考http://www.jb51.net/article/48668.htm
参考http://www.jb51.net/article/48668.htm
#12
补充:传值方式有两种GET,POST传过去的值的形式有三种:字符串, XML, JSON
#13
data数据不管是写成"username"+username,还是{"username":username}
配置成字符串或者json对象都行,配置成字符串url键值对 jquery会直接传递,如果是json对象jquery会自动帮你转为url键值,最终传递的就是键值对对象,
获取不到自己检查服务器配置,如是否区分get/post请求什么的
配置成字符串或者json对象都行,配置成字符串url键值对 jquery会直接传递,如果是json对象jquery会自动帮你转为url键值,最终传递的就是键值对对象,
获取不到自己检查服务器配置,如是否区分get/post请求什么的
#14
#15
前端传送 json格式的数据,后端接收并解析(这个问题也困扰我很久,现在终于解决。。。
)
toSendJsonData_request.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'toJsonData.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="./jquery/jquery-1.11.1.min.js"></script>
</head>
<body>
This is my JSP page.
<br>
</body>
<script type="text/javascript">
$(function (){
var jsonStr = [ {
'name' : 'jim',
'age' : 20
}, {
'name' : 'king',
'age' : 26
}, {
'name' : 'jge',
'age' : 30
} ];
var url="./AjaxDemo/toGetJsonData_reponse.jsp";
$.ajax({
type : "post",
url : url,
dataType : 'json',
data : {
'mydata' : JSON.stringify(jsonStr)//注意一定要使用JSON.stringify (在IE6,IE7中不支持)
},
success : function(data,textStatus) {
alert(data.name);
},
error : function(xhr, status, errMsg) {
alert("操作失败!");
}
});
});
</script>
</html>
toGetJsonData_reponse.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page
import="net.sf.json.*"%>
<%
// String jsonStr = ServletActionContext.getRequest().getParameter(
// "mydata");
// String jsonStr = "[{'name':'jim','age':20},{'name':'king','age':26},{'name':'jge','age':30}]";
String jsonStr = request.getParameter("mydata");
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
String name = "";
String age = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonJ = jsonArray.getJSONObject(i);
name = jsonJ.getString("name");
age = jsonJ.getString("age");
}
%>{"name":"<%=name%>"}
toSendJsonData_request.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'toJsonData.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="./jquery/jquery-1.11.1.min.js"></script>
</head>
<body>
This is my JSP page.
<br>
</body>
<script type="text/javascript">
$(function (){
var jsonStr = [ {
'name' : 'jim',
'age' : 20
}, {
'name' : 'king',
'age' : 26
}, {
'name' : 'jge',
'age' : 30
} ];
var url="./AjaxDemo/toGetJsonData_reponse.jsp";
$.ajax({
type : "post",
url : url,
dataType : 'json',
data : {
'mydata' : JSON.stringify(jsonStr)//注意一定要使用JSON.stringify (在IE6,IE7中不支持)
},
success : function(data,textStatus) {
alert(data.name);
},
error : function(xhr, status, errMsg) {
alert("操作失败!");
}
});
});
</script>
</html>
toGetJsonData_reponse.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page
import="net.sf.json.*"%>
<%
// String jsonStr = ServletActionContext.getRequest().getParameter(
// "mydata");
// String jsonStr = "[{'name':'jim','age':20},{'name':'king','age':26},{'name':'jge','age':30}]";
String jsonStr = request.getParameter("mydata");
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
String name = "";
String age = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonJ = jsonArray.getJSONObject(i);
name = jsonJ.getString("name");
age = jsonJ.getString("age");
}
%>{"name":"<%=name%>"}
#16
为什么我在后台Servlet接收JSON时候报错了,说JSON文本格式要包含在'[ ]'括号,加了括号之后转成JSONArray后又array.size()只有一行......这是什么情况,是前台表格属性设置的问题吗?我用的是easyui datagrid。
#17
你好,新手学app开发,前端用ajax传送数据后,后台在myecplise中怎样用java取出数据啊?能给详细一点的解答吗?感谢!!
#18
能弱弱的说句,data写成date了吗?
#19
我怎么觉得楼上正解了
#20
哈哈哈,楼上的楼上正解了,要笑死了
#21
然而楼主已经不在了....
#22
#23
这帖子真是人才辈出。尤其是楼主。
#24
楼主
date:{username:username},
这句话 你犯了2个错误
第一个 是data 不是data
第二个 键值对 第二个值应该要加双引号或者单引号
date:{username:username},
这句话 你犯了2个错误
第一个 是data 不是data
第二个 键值对 第二个值应该要加双引号或者单引号
#25
数据读取顺序试试哦
#26
、
也是人才,‘’是data不是data‘’,有区别吗。。。
也是人才,‘’是data不是data‘’,有区别吗。。。
#27
哈哈,笑死!!都是人才
#28
不行了。 像我这种从来不评论的人 也得来一句
太人才了
太人才了
#29
看到这贴,我也是笑晕了。
将数据封装成date,后台肯定取不到啦。
将数据封装成date,后台肯定取不到啦。
#30
表示上次别人也问了我一样的问题,过去瞄了一下,也是date........
#31
楼主估计是被搞疯了。还是太年轻,一点都不淡定~