Struts2+AJAX获取json数据
2016-02-01 10:33
337 查看
昨天晚上遇到了一个bug,是ajax调用struts2里面的方法获取json的问题,虽然现在那个问题没有解决,但是各种百度后,发现对stuts2跟ajax的交互认识又深了。
如上图,如果要这个action返回的结果为json,首先要指定包继承为json-default,之后,在result里面,指明type="json"。
<result>节点中还可以添加param参数,来指定序列化的参数:从哪儿开始序列化,序列化谁,不序列化谁。。。比如上图,配置序列化的根节点为success,如果没有配置的话,会默认序列化Action中所有提供get***()方法的属性。如果制定了,则从root开始向下序列化。
加上这个注解之后,会忽略对get**()的序列化。另外,在@JSON中还可以指定序列化的格式,名称。
但是对于实现Externalizable接口的类,这个关键字没啥用。
2,对于新手,不熟悉json的,又看不到json具体转换过程的人来说,只能靠猜测序列化的时候报错了。
一,如果设置Action返回的结果为json类型
如上图,如果要这个action返回的结果为json,首先要指定包继承为json-default,之后,在result里面,指明type="json"。
<result>节点中还可以添加param参数,来指定序列化的参数:从哪儿开始序列化,序列化谁,不序列化谁。。。比如上图,配置序列化的根节点为success,如果没有配置的话,会默认序列化Action中所有提供get***()方法的属性。如果制定了,则从root开始向下序列化。
二,Action中一些常用配置
如果配置文件中没有配置root,可以在不需要序列化的方法上:加上这个注解之后,会忽略对get**()的序列化。另外,在@JSON中还可以指定序列化的格式,名称。
三,对实现Serializable接口的对象
一般序列化的时候会默认序列化非静态的提供了get方法的成员变量。但是可以通过关键字transient指定不需要序列化的属性。但是对于实现Externalizable接口的类,这个关键字没啥用。
四,struts2+ajax的一些坑
1,每次报错,strtus2的报错页信息就会返回给ajax,并且是进入ajax的success方法中,(⊙﹏⊙)b。。。。。。。。2,对于新手,不熟悉json的,又看不到json具体转换过程的人来说,只能靠猜测序列化的时候报错了。
相关文章推荐
- Java反射机制应用(JavaBean转换Map形式)
- rpm或者yum 命令安装JDK后的JDK位置
- Java设计模式之单例模式
- maven项目强制转换到jdk1.7 1.8
- 深入分析JavaWeb 5 -- Servlet开发
- JAVA泛型应用-获取容器运行时的泛型Class对象
- Eclipse快捷键
- 简单CXF操作之整合spring(二)
- Spring和Websocket相结合实现消息的推送
- springMVC动态生成验证码过程
- Eclipse 修改jsp、XML、 java、 HTML 每行显示的字数
- Java多线程-概念与原理
- java学习笔记(二)
- Java多线程入门
- JAVA List容器内部差异化比较工具类(咋个办呢 zgbn)
- Eclipse导入项目
- 【java】学习笔记(一)
- 2016蓝桥杯假期任务之《奇怪的比赛》
- 饿汉式单例与懒汉式单例的讨论
- Struts2 语法--result type