Ajax得到后台传来的json类型的数据,怎么原封不动的传给jsp页面的java代码中

A
后台:
public class test3 implements Action {
private String str;
…………
public String execute() throws Exception {
List<List<Object>> lmondata = new ArrayList<List<Object>>();
………………
Gson gson = new Gson();
str = gson.toJson(lmondata);
return SUCCESS;
}
}

js:
function myfun2(){
var url = 'test1.action';
var myAjax = new Ajax.Request(url,{
method:'post',
onComplete:
function (str)
{
//我不想在这里处理数据,想把str直接传给jsp中的java处理
}
});
}
最新回答
相爱到放下

2024-06-01 10:51:41

在这个方法的外面添加一个变量例如:var string ;
然后这样:function myfun2(){
var url = 'test1.action';
var myAjax = new Ajax.Request(url,{
method:'post',
onComplete:
function (str)
{
string = str;
}
});
}
再然后是另一个方法调用string就成。
另一种方法,就是在function (str)
{
//这里直接调用要处理str的方法
例如:myfun1(str);把str当做参数传过去
}
替月亮关灯

2024-06-01 11:00:38

开发者之所以用ajax同步异步请求和传输操作,就是为了保证页面会被跳转和刷新,所以ajax获取到数据後,页面没变化很正常。如果你想刷新页面或者跳转,那就选择struts2的action跳转。
纯洁的小黄瓜

2024-06-01 06:55:26

你既然选择了用ajax异步提交方式,这个请求会发送到'test1.action'进行处理,处理后反回值会回传到function(str)函数。
你现在是想把回传的str交给jsp或java处理,那就得改test1.action文件,让处理完的结果再调用别的java方法,或跳转到别的jsp页面。