比如我有一个List,里面装的一个User对象,List<User>,
User有ID,name属性。在jsp中$.ajax或者$.getJSON应该如何获取这个List?
action中又该如何返回给jsp这个List,一直不知道怎么使用?
9 个解决方案
#1
在struts2中,写一个自定义的result返回类型类(如:JSONResult)。 在类中将action的基类的数据list在返回类型类中取出,
然后经过JSONObject的封装后,在JS的回调函数中,result.list可以取出。
然后经过JSONObject的封装后,在JS的回调函数中,result.list可以取出。
#2
楼主。如果是JSP中取值,struts2的valueStack,配置表达式就可以啊。
#3
过来瞅一瞅,受教了。。。
#4
Action:
public class itemsView implements Action {
private static final long serialVersionUID = 1L;
public String execute() throws Exception {
// 服务器端响应客户端请求的数据
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
if(new showAllPaper().printData()!=null)
{
out.print(new showAllPaper().printData());
}
return null;
}
}
后台数据:
public JSONArray fatherNodes(List<Nodes> list) {
return JSONArray.fromObject(list);
}
JSP:
var datamessage=$.ajax({url: "itemView.action",async: false}).responseText;
var data=eval("("+datamessage+")");
希望对你有所帮助!
public class itemsView implements Action {
private static final long serialVersionUID = 1L;
public String execute() throws Exception {
// 服务器端响应客户端请求的数据
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
if(new showAllPaper().printData()!=null)
{
out.print(new showAllPaper().printData());
}
return null;
}
}
后台数据:
public JSONArray fatherNodes(List<Nodes> list) {
return JSONArray.fromObject(list);
}
JSP:
var datamessage=$.ajax({url: "itemView.action",async: false}).responseText;
var data=eval("("+datamessage+")");
希望对你有所帮助!
#5
public JSONArray printData() {
return this.fatherNodes(this.nodeList);
}
return this.fatherNodes(this.nodeList);
}
#6
在服务器端我是这样写的
public class User implements Serializable,JSONAware{
private String id;
private String name;
get、set省略
@Override
public String toJSONString() {
JSONObject obj = new JSONObject();
obj.put("id", id);
obj.put("name", name);
return obj.toString();
}
}
public String initdata(){
List<User> list = userService.queryUsers();//这个list里面是有值的,里面装的是User对象
JSONArray array = new JSONArray();
for(User u:list){
array.add(u);
}
System.out.println(array);//打印出来的格式是:
[{"id":"0","name":"哈哈"},{"id":"1","name":"你好"}]
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(array);
out.flush();
out.close();
}
前台页面
$.ajax({
type: "POST",
url:url,
success:function(data){
alert(data);//两种方式firefox都提示语法错误,不知道怎么处理
}
或者
success:function(xmlhttp){
alert(xmlhttp);
var response=xmlhttp.responseText;
var ret=eval(response);
for(var i=0;i<ret.length;i++){
alert(ret[i].name);//这里能打印出名称出来,但是firefox却提示语法错误
}
}
});
#7
提示什么错误???
#8
[{"id":"0","name":"哈哈"},{"id":"1","name":"你好"}]语法错误
#9
就没人看清楚是json-simple啊
#1
在struts2中,写一个自定义的result返回类型类(如:JSONResult)。 在类中将action的基类的数据list在返回类型类中取出,
然后经过JSONObject的封装后,在JS的回调函数中,result.list可以取出。
然后经过JSONObject的封装后,在JS的回调函数中,result.list可以取出。
#2
楼主。如果是JSP中取值,struts2的valueStack,配置表达式就可以啊。
#3
过来瞅一瞅,受教了。。。
#4
Action:
public class itemsView implements Action {
private static final long serialVersionUID = 1L;
public String execute() throws Exception {
// 服务器端响应客户端请求的数据
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
if(new showAllPaper().printData()!=null)
{
out.print(new showAllPaper().printData());
}
return null;
}
}
后台数据:
public JSONArray fatherNodes(List<Nodes> list) {
return JSONArray.fromObject(list);
}
JSP:
var datamessage=$.ajax({url: "itemView.action",async: false}).responseText;
var data=eval("("+datamessage+")");
希望对你有所帮助!
public class itemsView implements Action {
private static final long serialVersionUID = 1L;
public String execute() throws Exception {
// 服务器端响应客户端请求的数据
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
if(new showAllPaper().printData()!=null)
{
out.print(new showAllPaper().printData());
}
return null;
}
}
后台数据:
public JSONArray fatherNodes(List<Nodes> list) {
return JSONArray.fromObject(list);
}
JSP:
var datamessage=$.ajax({url: "itemView.action",async: false}).responseText;
var data=eval("("+datamessage+")");
希望对你有所帮助!
#5
public JSONArray printData() {
return this.fatherNodes(this.nodeList);
}
return this.fatherNodes(this.nodeList);
}
#6
在服务器端我是这样写的
public class User implements Serializable,JSONAware{
private String id;
private String name;
get、set省略
@Override
public String toJSONString() {
JSONObject obj = new JSONObject();
obj.put("id", id);
obj.put("name", name);
return obj.toString();
}
}
public String initdata(){
List<User> list = userService.queryUsers();//这个list里面是有值的,里面装的是User对象
JSONArray array = new JSONArray();
for(User u:list){
array.add(u);
}
System.out.println(array);//打印出来的格式是:
[{"id":"0","name":"哈哈"},{"id":"1","name":"你好"}]
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(array);
out.flush();
out.close();
}
前台页面
$.ajax({
type: "POST",
url:url,
success:function(data){
alert(data);//两种方式firefox都提示语法错误,不知道怎么处理
}
或者
success:function(xmlhttp){
alert(xmlhttp);
var response=xmlhttp.responseText;
var ret=eval(response);
for(var i=0;i<ret.length;i++){
alert(ret[i].name);//这里能打印出名称出来,但是firefox却提示语法错误
}
}
});
#7
提示什么错误???
#8
[{"id":"0","name":"哈哈"},{"id":"1","name":"你好"}]语法错误
#9
就没人看清楚是json-simple啊