1.JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据,并将该数据返回给客户端页面的JavaScript.
简单地说,JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式,就可以完成Ajax交互。
Struts2提供了一种可插拔方式来管理插件,安装Struts2的JSON插件与安装普通插件并没有太大的区别,一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可。
2.package要继承json-default,因为json-default继承了struts-default,因为在json的jar包里有个struts2-json-plugin-2.3.24.1.jar,打开即可看到里面有个struts-plugin.xml,打开即可看到json-default是继承了struts-default:
原文:https://blog.csdn.net/eson_15/article/details/51332758
3.JSON注释还支持如下几个域:
serialize:设置是否序列化该属性
deserialize:设置是否反序列化该属性。
format:设置用于格式化输出、解析日期表单域的格式。例如"yyyy-MM-dd‘T‘HH:mm:ss".
4.Struts2中json的使用总结
https://blog.csdn.net/z69183787/article/details/49867623?utm_source=blogxgwz0
root参数:从返回结果中根据ognl表达式取出你需要输出的结果
部分使用示例
struts.xml
|
|
|
5配置中遇到的问题
一、Could not find action or result There is no Action mapped for namespace / and action name . - [unknown location]
经过再三查找,最后确定是因为缺少一个包struts2-json-plugin-2.2.3.jar.
下载到这个包,此错误消息。
接下来遇到错误
二、java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
网上搜一下,缺少的是common-lang包。找一个加入进去,搞定不报错了,开心呀。
三、但是一看页面上显示的是null,这不对。所以在网上又是继续搜索,最后发现没有加getter方法,最后加了一个dataMap的get方法可以了。
struts的result方法,需要有getter/setter方法才能获取到值。
6.SSH网上商城项目实战