`
chenyu.hz
  • 浏览: 139722 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

struts2 整合 jsonplugin

    博客分类:
  • J2EE
阅读更多

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;
	}
}

 

分享到:
评论
1 楼 pxb1988 2010-08-26  
java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/Object;)Ljava/lang/Object;

是因为struts2-core-2.16中ActionContext类没有Object get(Object arg)方法

相关推荐

    json2+jsonplugin struts2整合ajax时,使用json时需要的jar包

    在Struts2框架中整合Ajax以实现异步数据交互,JSON(JavaScript Object Notation)扮演了关键角色。JSON是一种轻量级的数据交换格式,它允许Web应用与服务器之间高效地传输数据,而无需进行繁琐的HTTP请求。在这个...

    struts2整合JSON

    ### Struts2整合JSON知识点详解 #### 一、概述 在现代Web开发中,JSON(JavaScript Object Notation)因其轻量级的数据交换格式而被广泛采用。Struts2作为Java Web开发中的一个重要框架,能够方便地与JSON进行整合...

    jsonplugin插件

    6. **整合过程**:将JSONPlugin整合到Struts2.1.8中,通常需要以下步骤: - 添加JSONPlugin的jar文件到项目的类路径。 - 在struts.xml配置文件中引入插件配置,例如`&lt;constant name="struts.enable....

    Struts2与AJAX

    总结来说,Struts2通过与AJAX的整合以及JSON插件的使用,极大地提升了Web应用的用户体验。它不仅提供了简单的API和工具,使得开发者可以快速地实现AJAX功能,同时还能充分利用现有的JSON库和浏览器的JSON支持,降低...

    十分详细的讲解了如何实现Ext与Struts整合使用

    在整合ExtJs与Struts2时,你需要以下关键组件: 1. Struts2框架的相关包:这些包括Struts2的核心库、插件等,用于处理HTTP请求、Action映射、结果类型定义等功能。 2. ExtJs库:可以从官方网站下载,包含必要的JS和...

    struts2与json的整合

    ### Struts2与JSON的整合 #### JSON 插件简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Struts2框架支持与JSON插件的整合,这使得开发者能够...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(一)

    Ext的JSONStore可以配合Struts2的JsonResult或JsonPlugin,使Action直接返回JSON数据,从而驱动Ext的GridPanel等组件动态更新。 整合这些框架时,需要关注以下几点: 1. 配置文件的设置:确保`struts.xml`、`spring...

    struts2增删改查代码精.pdf

    Struts2与Gt-Grid整合 Gt-Grid是一款功能强大且灵活的表格控件,广泛应用于Web应用程序中。Struts2与Gt-Grid的整合可以实现高效的数据展示和操作。在本例中,我们将Struts2与Gt-Grid整合,实现增删改查操作。 ...

    Struts 与 dojo 整合研究 (一)

    2. 在前端,使用Dojo的dojo.xhrGet或dojo.xhrPost方法发起异步请求,获取Struts返回的JSON数据。 3. 解析并处理JSON数据,使用Dojo的DataGrid或其他组件展示数据,或者根据数据更新UI状态。 4. 考虑到性能和安全性,...

    json+struts2插件

    这可以实现struts和json的整合 &lt;struts&gt; &lt;action name="JsonPlugin" class="testJson.JsonPluginAction"&gt; &lt;/action&gt; &lt;/struts&gt;

    struts2_json_jquery_集成详解.docx

    2. **引入依赖**:添加struts2的核心库、JSON插件(jsonplugin.jar)、Struts2-Spring插件、Hibernate库、Spring库、JDBC驱动以及jQuery库。 3. **数据库设计**:创建合适的数据库表并能够在MyEclipse中管理。 4. **...

    spring、struts、ibatis框架搭建流程

    为了搭建Struts2环境,首先需要从Apache官方站点下载Struts2框架。 - **下载地址**:http://struts.apache.org/download.cgi - **建议下载**:Full Distribution版本,如struts-2.0.14-full.zip - **额外组件**:...

    Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0

    - 需要额外添加`jsonplugin-0.34.jar`包,以支持Struts 2 Action返回JSON格式的数据。 2. **实体类设计** - 定义一个通用的实体接口`BaseEntity`,其中包含一个公共方法`getId()`来获取实体的主键ID。 ```java ...

    培训信息发布平台v1.0

    使用技术:struts2(+jsonplugin-0.3) + Spring2.5 + iBatis2.3 + ExtJs3.0 使用的浏览器:Firefox3.0 数据库生成:train_s2sie3_v1.sql 测试数据:train_s2sie3_v1_data.sql 这个项目是在以前做过的一个小项目...

    SSI整合小案例

    本文档旨在通过一个简单的示例来介绍如何将Struts2、Spring和Ibatis(现称为MyBatis)三个框架整合在一起,构建一个基本的Web应用程序。这种整合方式常被称为SSI(Struts2 + Spring + Ibatis/MyBatis)。对于初学者...

    ssi框架搭建说明文档

    本文档主要讲解如何使用Spring2.5、Struts2、Ibatis这三个框架搭建一个基于SSI的开发环境。 首先,我们来看Struts2框架。Struts2是基于WebWork发展起来的,并且已经捐赠给了Apache开源组织。它的最新版本可以在...

    Strut2.0 与AJAX(第一部分)

    Struts2是一个用于构建企业级Java Web应用程序的开源框架,它继承了Struts1的优点并在此基础上进行了大量的改进和完善。Struts2采用了MVC(Model-View-Controller)设计模式,将业务逻辑、数据处理和页面展示三者...

    SSI 增删改查

    在Java开发领域,尤其是Web应用开发中,SSI(Server Side Include)通常指的是服务器端包含技术,但在本文档的上下文中,SSI可能更多地是指一种整合了Spring、Struts和Ibatis(或MyBatis)的技术栈,用于实现Web应用...

    ibatis 一个简单的项目详解

    - **Struts2核心及插件**:struts2-core-2.0.11.2.jar、struts2-spring-plugin-2.0.11.2.jar - **XWork核心库**:xwork-2.0.5.jar - **其他工具类**:classes12.jar、ognl-2.6.11.jar ##### 3. 编写实体Bean 实体...

Global site tag (gtag.js) - Google Analytics