配置中的参数含义:

root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 
ignoreHierarchy 为false时表示要序列化根对象的所有基类 
excludeProperties表示排除的序列化的属性

includeProperties表示哪些属性被序列化

Action配置:

[xhtml] view plaincopy

  1. <!-- jsonplugin的使用配置 -->
  2. <!-- package要继承json-default 以加载json插件 -->
  3. <action name="jsonAct" class="cn.enjoylife.prac.action.JsonAction">
  4. <result type="json">
  5. <!-- root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 -->
  6. <param name="root">map</param>
  7. <!-- ignoreHierarchy 为false时表示要序列化根对象的所有基类 -->
  8. <param name="ignoreHierarchy">false</param>
  9. <!-- 排除hello属性,使其不被序列化 -->
  10. <param name="excludeProperties">hello</param>
  11. </result>
  12. </action>

JsonAction.java:

  1. /**
  2. * @author Evan
  3. *
  4. */
  5. public class JsonAction extends ActionSupport {
  6. private static final long serialVersionUID = 3870310687165227565L;
  7. private int[] ints = { 100, 200 };
  8. private Map<String, Object> map = new HashMap<String, Object>();
  9. private String hello = "helloWorld";
  10. private String username = "evan";//没有getter方法,不会被序列化
  11. private String password = "pwd";
  12. private String validateCode = "123456";
  13. public int[] getInts() {
  14. return ints;
  15. }
  16. public void setInts(int[] ints) {
  17. this.ints = ints;
  18. }
  19. @JSON(name="newMap")//重新命名
  20. public Map<String, Object> getMap() {
  21. return map;
  22. }
  23. public void setMap(Map<String, Object> map) {
  24. this.map = map;
  25. }
  26. public String getHello() {
  27. return hello;
  28. }
  29. public void setHello(String hello) {
  30. this.hello = hello;
  31. }
  32. public void setUsername(String username) {
  33. this.username = username;
  34. }
  35. @JSON(serialize=true)//这是默认值,可以省去
  36. public String getPassword() {
  37. return password;
  38. }
  39. public void setPassword(String password) {
  40. this.password = password;
  41. }
  42. @JSON(serialize=false)//serialize参数为false,不会被序列化
  43. public String getValidateCode() {
  44. return validateCode;
  45. }
  46. public void setValidateCode(String validateCode) {
  47. this.validateCode = validateCode;
  48. }
  49. @Override
  50. public String execute() throws Exception {
  51. map.put("info", "今天的雨真大啊!");
  52. return SUCCESS;
  53. }
  54. }

使用jquery操作返回的json串:

[javascript] view plaincopy

  1. $(document).ready(function(){
  2. $.getJSON(
  3. "./jsonAct.action",
  4. function(data){
  5. alert(data.info);
  6. }
  7. );
  8. });

https://cwiki.apache.org/confluence/display/WW/JSON%20Plugin

struts2 使用jsonplugin的更多相关文章

  1. ibernate+Struts2环境如何使用jqGrid。

    因为公司项目需要,在Hibernate+Struts2的环境下,研究了一下如何使用jqGrid. 说实在的,Struts2+jqGrid不是一个很好的组合.因为jqGrid中很多功能,基本上都使用的是 ...

  2. 解决Struts2 json-plugin Date或Timestamp等日期格式带T的问题

    如果没有对日期时间对象类进行json日期格式声明,会出现类似"2013-06-18T12:08:56.23"日期,在日期中间多出一个T字母: 从通过查询数据,以及调试程序发现直到返 ...

  3. struts2.0整合json

    框架:struts2.0+hibernate2+spring 今天写代码时,需要用到json,我就直接加了两个jar包:json-lib-2.1-jdk15.jar,struts2-json-plug ...

  4. struts2+hibernate+spring+jquery返回json List列表

    1.引入包:struts2-json-plugin-2.1.8.1.jar json-lib-2.1.jar commons-collections-3.2.1.jar commons-beanuti ...

  5. Class org.apache.struts2.json.JSONWriter can not access a member of

    异常形式: Class org.apache.struts2.json.JSONWriter can not access a member of * 或是 Class com.googlecode. ...

  6. struts2的json-default和struts-default的区别

    http://www.cnblogs.com/lbangel/archive/2013/05/24/3096986.html struts2的json plugin可以实现struts2和json的完 ...

  7. 为什么struts2 ajax 方法执行两次

    struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次. 原因: struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面 ...

  8. 转载:Struts2.3.15.1升级总结

    转载网址:http://blog.csdn.net/amosryan/article/details/10350481 由于大家都懂的原因,涉struts2的项目需要将struts2相关包升级至2.3 ...

  9. 转:Struts2框架安全缺陷

    当前java开发网站,通常不会是纯JSP的,大都使用了java framework. 有了这些framework,让开发人员更加快速的开发出代码,也让代码非常具有可扩展性,那些分层架构的思想,更是深入 ...

随机推荐

  1. 让Mac OS X中的PHP支持GD

    GD库已经是近乎于是现在主流PHP程序的标配了,所以也必须让Mac OS X中的PHP支持GD.在网上搜索了好多,最终按照这个方式成功实现,如何让Mac OS X支持PHP,请查看<让PHP跑在 ...

  2. POJ2406 KMP算法

    POJ2406 问题重述:给定字符串s0,记连续的k个s前后相连组成的s0s0...s0为s0^k.输入字符串S,求最大的k,使得S = s0^k. 问题分析: 1.采用kmp算法求出前缀函数 pre ...

  3. linux清理僵尸进程

    查看服务器时发现好3个僵尸进程,僵尸进程存在好多天了,一直不会处理,留到了今天,顺便清理下僵尸进程吧 top命令中统计了僵尸进程,是第二行最后一项3 zombie. 或者使用下面的命令得到僵尸进程数量 ...

  4. 导入IP安全策略图解

    导入IP安全策略图解 点击“开始菜单”→点击“运行”→输入gpedit.msc并回车 →点击“计算机配置”→“windows设置”→“安全设置”,用鼠标右键点击“IP安全策略”,在弹出菜单中点击“所有 ...

  5. DIV 遮挡问题总结

    1.DIV被Silverlight遮挡, 加入windowless参数即可. <object id=”silverlight” data=”data:application/x-silverli ...

  6. UILabel自适应高度和自动换行

    码: //初始化label UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)]; //设置自动行数与字符换行 [l ...

  7. Spring ioc 原理

    java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作.你 ...

  8. Swift--存储属性-备

    Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据. 存储属性可以存储数据,分为常量属性(用关键字let定义) ...

  9. Delphi TcxTreelist 设置scrollbars 不起作用的原因

    最近设置TcxTreelist的滚动条,发现水平的不起作用, 即使设置 sboth也不起作用. 查找,发现设置的一些属性导致了这个原因, 建立备忘,如下图: 1.属性, 这个页面,设置的表格,怎么也看 ...

  10. 【hihoCoder第十六周】RMQ-ST算法

    RMQ的大裸题.没什么意思.开始数组开小了,RE了一次.下面放代码. #include <bits/stdc++.h> using namespace std; vector<int ...