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框架中整合Ajax以实现异步数据交互,JSON(JavaScript Object Notation)扮演了关键角色。JSON是一种轻量级的数据交换格式,它允许Web应用与服务器之间高效地传输数据,而无需进行繁琐的HTTP请求。在这个...
### Struts2整合JSON知识点详解 #### 一、概述 在现代Web开发中,JSON(JavaScript Object Notation)因其轻量级的数据交换格式而被广泛采用。Struts2作为Java Web开发中的一个重要框架,能够方便地与JSON进行整合...
6. **整合过程**:将JSONPlugin整合到Struts2.1.8中,通常需要以下步骤: - 添加JSONPlugin的jar文件到项目的类路径。 - 在struts.xml配置文件中引入插件配置,例如`<constant name="struts.enable....
总结来说,Struts2通过与AJAX的整合以及JSON插件的使用,极大地提升了Web应用的用户体验。它不仅提供了简单的API和工具,使得开发者可以快速地实现AJAX功能,同时还能充分利用现有的JSON库和浏览器的JSON支持,降低...
在整合ExtJs与Struts2时,你需要以下关键组件: 1. Struts2框架的相关包:这些包括Struts2的核心库、插件等,用于处理HTTP请求、Action映射、结果类型定义等功能。 2. ExtJs库:可以从官方网站下载,包含必要的JS和...
### Struts2与JSON的整合 #### JSON 插件简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Struts2框架支持与JSON插件的整合,这使得开发者能够...
Ext的JSONStore可以配合Struts2的JsonResult或JsonPlugin,使Action直接返回JSON数据,从而驱动Ext的GridPanel等组件动态更新。 整合这些框架时,需要关注以下几点: 1. 配置文件的设置:确保`struts.xml`、`spring...
Struts2与Gt-Grid整合 Gt-Grid是一款功能强大且灵活的表格控件,广泛应用于Web应用程序中。Struts2与Gt-Grid的整合可以实现高效的数据展示和操作。在本例中,我们将Struts2与Gt-Grid整合,实现增删改查操作。 ...
2. 在前端,使用Dojo的dojo.xhrGet或dojo.xhrPost方法发起异步请求,获取Struts返回的JSON数据。 3. 解析并处理JSON数据,使用Dojo的DataGrid或其他组件展示数据,或者根据数据更新UI状态。 4. 考虑到性能和安全性,...
这可以实现struts和json的整合 <struts> <action name="JsonPlugin" class="testJson.JsonPluginAction"> </action> </struts>
2. **引入依赖**:添加struts2的核心库、JSON插件(jsonplugin.jar)、Struts2-Spring插件、Hibernate库、Spring库、JDBC驱动以及jQuery库。 3. **数据库设计**:创建合适的数据库表并能够在MyEclipse中管理。 4. **...
为了搭建Struts2环境,首先需要从Apache官方站点下载Struts2框架。 - **下载地址**:http://struts.apache.org/download.cgi - **建议下载**:Full Distribution版本,如struts-2.0.14-full.zip - **额外组件**:...
- 需要额外添加`jsonplugin-0.34.jar`包,以支持Struts 2 Action返回JSON格式的数据。 2. **实体类设计** - 定义一个通用的实体接口`BaseEntity`,其中包含一个公共方法`getId()`来获取实体的主键ID。 ```java ...
使用技术:struts2(+jsonplugin-0.3) + Spring2.5 + iBatis2.3 + ExtJs3.0 使用的浏览器:Firefox3.0 数据库生成:train_s2sie3_v1.sql 测试数据:train_s2sie3_v1_data.sql 这个项目是在以前做过的一个小项目...
本文档旨在通过一个简单的示例来介绍如何将Struts2、Spring和Ibatis(现称为MyBatis)三个框架整合在一起,构建一个基本的Web应用程序。这种整合方式常被称为SSI(Struts2 + Spring + Ibatis/MyBatis)。对于初学者...
本文档主要讲解如何使用Spring2.5、Struts2、Ibatis这三个框架搭建一个基于SSI的开发环境。 首先,我们来看Struts2框架。Struts2是基于WebWork发展起来的,并且已经捐赠给了Apache开源组织。它的最新版本可以在...
Struts2是一个用于构建企业级Java Web应用程序的开源框架,它继承了Struts1的优点并在此基础上进行了大量的改进和完善。Struts2采用了MVC(Model-View-Controller)设计模式,将业务逻辑、数据处理和页面展示三者...
在Java开发领域,尤其是Web应用开发中,SSI(Server Side Include)通常指的是服务器端包含技术,但在本文档的上下文中,SSI可能更多地是指一种整合了Spring、Struts和Ibatis(或MyBatis)的技术栈,用于实现Web应用...
- **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 实体...