原意想法是这样:
客户端用JS生成JSON数据,通过Ajax框架prototype发放到服务端;服务端接收JSON数据后利用JSON in Java重新组织成JSON对象,再生成JSON字符串回调Ajax客户端函数;在被回调的函数中显示数据。
客户端代码如下:
sendData.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<html>
<head>
<script src="json.js"></script>
<script src="prototype.js"></script>
<title>使用JSON示例</title>
</head>
<body>
<script language="javascript">
function sendData(){
usersVar={ "userName": "jj", "address":{"province":"123","city":"cs"}, "email": "xiangxiangd126.com" };
var url="dealData.jsp?timeStamp="+new Date().getTime();
var myAjax=new Ajax.Request(url,{
method:'post',
parameters:usersVar,
requestHeaders:{Accept:'application/json'},
contentType: 'application/x-www-form-urlencoded',
onComplete:showResponse,
asynchronous:true
});
}
sendData();
function showResponse(originalRequest){
var user=originalRequest.responseText.evalJSON();
document.write("JSON是:");
document.write(user.email);
}</script>
</body>
</html>服务端代码如下:
dealData.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ page import="org.json.*,java.util.HashMap" %>
<html>
<head>
<script src="json.js"></script>
<script src="prototype.js"></script>
<title>使用JSON示例</title>
</head>
<body>
<%
String userName=request.getParameter("userName");
String address=request.getParameter("address");
String email=request.getParameter("email");
HashMap<String,String> map=new HashMap<String,String>();
map.put("userName",userName);
map.put("address",address);
map.put("email",email);
JSONObject userJsonObj=new JSONObject(map);
out.print(userJsonObj.toString());
%>
</body>
</html>
结果发给用浏览器访问客户端页面时,页面无任何显示,也无任何报错。请问是什么问题?
客户端用JS生成JSON数据,通过Ajax框架prototype发放到服务端;服务端接收JSON数据后利用JSON in Java重新组织成JSON对象,再生成JSON字符串回调Ajax客户端函数;在被回调的函数中显示数据。
客户端代码如下:
sendData.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<html>
<head>
<script src="json.js"></script>
<script src="prototype.js"></script>
<title>使用JSON示例</title>
</head>
<body>
<script language="javascript">
function sendData(){
usersVar={ "userName": "jj", "address":{"province":"123","city":"cs"}, "email": "xiangxiangd126.com" };
var url="dealData.jsp?timeStamp="+new Date().getTime();
var myAjax=new Ajax.Request(url,{
method:'post',
parameters:usersVar,
requestHeaders:{Accept:'application/json'},
contentType: 'application/x-www-form-urlencoded',
onComplete:showResponse,
asynchronous:true
});
}
sendData();
function showResponse(originalRequest){
var user=originalRequest.responseText.evalJSON();
document.write("JSON是:");
document.write(user.email);
}</script>
</body>
</html>服务端代码如下:
dealData.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ page import="org.json.*,java.util.HashMap" %>
<html>
<head>
<script src="json.js"></script>
<script src="prototype.js"></script>
<title>使用JSON示例</title>
</head>
<body>
<%
String userName=request.getParameter("userName");
String address=request.getParameter("address");
String email=request.getParameter("email");
HashMap<String,String> map=new HashMap<String,String>();
map.put("userName",userName);
map.put("address",address);
map.put("email",email);
JSONObject userJsonObj=new JSONObject(map);
out.print(userJsonObj.toString());
%>
</body>
</html>
结果发给用浏览器访问客户端页面时,页面无任何显示,也无任何报错。请问是什么问题?
解决方案 »
- jsp 页面 插入ArrayList 报错。。为什么,已经加了import="java.util.*"了呀!!!!
- javamail的错误
- 关于FCK的获值
- iReport报表问题!急!!
- 关于POI读取EXCEL的activex控件中checkbox的问题
- 请问怎样在my sql中存入字符"\"?
- 昨天找到工作(2月1号上班报到)顺带问下谁有C - C 的项目开发经验。散分
- select 属性绑定问题
- access 数据库问题,大家帮帮忙~~谢谢
- 特急!!请各位高手帮忙!!
- access保存数据报错HibernateOptimisticLockingFailureException
- ireport中设置报表的显示问题
不知道你requestHeaders:{Accept:'application/json'},之后,是不是usersVar就是JSON了,你可以试试在var myAjax=new Ajax.Request(url,{
这句之前加入
usersVar = eval("(" + usersVar + ")");
试试
是这样,经反复测试,如果不用.evalJSON()方法,输出时是可以输出JSON字符串的,但使用user.email显示undefined。如果使用.evalJSON()方法则根本无法正常显示。继续困扰中啊... ...
用alert看看user有值没
function showResponse(originalRequest){
var user=eval('(' + originalRequest.d + ')');
document.write("JSON是:");
document.write(user.email);
}