struts2-core-2.18和struts2-core-2.16整合jsonplugin 是不一样的
一、用struts2-core-2.16话需要依赖包为:
json-lib2.1.jar
json-plugin-0.33.jar
ezmorph-1.0.3.jar
commons-beanutils-1.7.0.jar或1.8
如果少包,则会报错:
java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/Object;)Ljava/lang/Object;
at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:153)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
二、用struts2-core-2.18,因为2.18比2.16少打包一个com.opensymphony.xwork2.util.TextUtils.class文件会导致,整合出错,会报错:找不到TextUtils.class,所以需要自己打包一个含TextUtils.class的包
json-lib2.1.jar
json-plugin-0.33.jar
ezmorph-1.0.3.jar
commons-beanutils-1.7.0.jar或1.8
textUtils.jar
三、一般的整合方法是,自己建一个dto
import java.io.Serializable;
/**
* 返回给浏览器的对象,包含此次操作的状态和数据
*
*
*
*/
public class JsonResult implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 操作是否成功
*/
private Boolean success;
/**
* 操作的信息
*/
private String message;
/**
* 返回的数据
*/
private Object data;
/**
* @return 操作是否成功
*/
public Boolean getSuccess() {
return success;
}
/**
* @param success
* 操作是否成功
*/
public void setSuccess(Boolean success) {
this.success = success;
}
/**
* @return 操作的信息
*/
public String getMessage() {
return message;
}
/**
* @param message
* 操作的信息
*/
public void setMessage(String message) {
this.message = message;
}
/**
* @return 返回的数据
*/
public Object getData() {
return data;
}
/**
* @param data
* 返回的数据
*/
public void setData(Object data) {
this.data = data;
}
/**
*
*
* @param success
* 操作是否成功
* @param message
* 操作的信息
* @param data
* 返回的数据
* @author Panxiaobo
*
*/
public JsonResult(Boolean success, String message, Object data) {
super();
this.success = success;
this.message = message;
this.data = data;
}
/**
* 直接调用this(success, message, null);
*
* @param success
* 操作是否成功
* @param message
* 操作的信息
*
* @see #JsonResult(Boolean, String, Object)
*/
public JsonResult(Boolean success, String message) {
this(success, message, null);
}
}
然后在struts.xml 中配置
<global-results>
<result name="json" type="json">
<param name="root">result</param>
<param name="ignoreHierarchy">false</param>
<param name="noCache">true</param>
</result>
</global-results>
或者在action中配置如:
/**
* Struts2 Action基类.支持json格式的返回
*
*
*/
@SuppressWarnings( { "serial" })
@Result(name = "json", type = "json", params = { "root", "result" })
public abstract class SimpleActionSupport extends ActionSupport {
protected final Logger logger = LoggerFactory.getLogger(getClass());
public static final String JSON = "json";
/**
*
* 返回成功信息
*
* @param message
* 信息
* @return SUCCESS
*
*/
protected String success(String message) {
result = new JsonResult(Boolean.TRUE, message);
return JSON;
}
/**
* Json的Root
*
* @return 返回给浏览器的json对象
*/
public JsonResult getResult() {
return result;
}
/**
*
* 返回失败信息
*
* @param message
* 信息
* @return SUCCESS
*
*/
protected String fail(String message) {
result = new JsonResult(Boolean.FALSE, message);
return JSON;
}
/**
* 返回给浏览器的json对象
*/
protected JsonResult result;
/**
*
* 返回成功信息和数据
*
* @param message
* 信息
* @param data
* 数据
* @return SUCCESS
*
*/
protected String success(String message, Object data) {
result = new JsonResult(Boolean.TRUE, message, data);
return JSON;
}
}
分享到:
相关推荐
Struts2_Jsonplugin_详解.doc
json2+jsonplugin struts2整合ajax时,使用json时需要的jar包。。。。。。。。。。。。
包括struts2的jar包,共33个非常全的,实用的。还有jsonplugin-0.33.jar包
为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址 http://code.google.com/p/jsonplugin/ 1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录 注:struts2...
jsonplugin源码包,struts2 ajax jsonplugin源码,源码学习
struts2 + jsonplugin google自动提示 ajax示例
struts2-core-2.xx 升级为struts2-core-2.3.15.1.jar后 jsonplugin-0.32.jar需要升级为 struts2-core-2.3.15.1.jar,不然在使用ajax时候报错 java.lang.NullPointerException at org.apache.jsp.web.error_jsp._jsp...
第一次上传,要5分,是物有所值,处理了jsonplugin 的no session的问题,并且添加了,新的注释,例如 @JSON(exclude='对象的名称') 就可以剔除 解决json与Hibernate之间的大部分问题 1.数据只取三层 2.对one-ton-many ,...
是struts的一个插件包
jsonplugin-0.32(struts2.0.0).jar jsonplugin-0.34(strurs2.1.6).jar
1、json.js 2、jsonplugin-0.34.jar 3、struts2-json-plugin-2.1.8.1.jar
NULL 博文链接:https://shengren-wang.iteye.com/blog/1325210
该压缩包内包含三个jar文件,其功能和jsonplugin.jar文件相同,用于和struts2.1.8整合,转换json数据格式供extjs使用
jxl.jar;dom4j.jar;jsonplugin-0.34.jar;junit-3.8.2.jar;log4j-1.2.14.jar;struts2-codebehind-plugin-2.0
jsonplugin0.33的代码,能够与struts2使用的
jsonplugin-0.32.jar jsonplugin.jar包
java structs jsonplugin
1、将struts2的json插件加入web工程的lib,jsonplugin的下载地址:http://code.google.com/p/jsonplugin/downloads/list
包含各种json资源包,json jsonplugin-0.33 struts2-json-plugin-2.1.8.1 struts2-json-plugin-2.1.6