struts2学习之一:
http://arthur2014.iteye.com/admin/blogs/2162974
struts2学习之三-spring注解:
http://arthur2014.iteye.com/admin/blogs/2162996
struts2学习之四-struts2注解:
http://arthur2014.iteye.com/admin/blogs/2163348
增加的jar包是struts2-json-plugin
1、修改struts.xml文件,package不再继承struts-default,而要继承json-default,修改如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="test" extends="json-default" namespace="/a">
<interceptors>
<interceptor-stack name="paramStack">
<interceptor-ref name="json" /><!-- 参数以json格式传输 -->
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="paramStack" />
<global-results>
<result name="json" type="json">
<!-- false表示父类的属性在在json中返回 -->
<param name="ignoreHierarchy">false</param>
</result>
</global-results>
</package>
</struts>
2、抽象action父类:
package com.haochen.action;
import com.opensymphony.xwork2.ActionSupport;
/**
*
* @title
* @Description 属性作为json格式参数时必需要有set方法,作为json格式返回值时必需要有get方法
* @author chenhao
* @date 2014年12月3日 上午10:14:48
* @version 1.0
*/
public abstract class BaseJsonAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 8670042218701228785L;
protected static final String JSON = "json";
private Object data;
private boolean success;
private int errorCode;
private String errorMsg;
@Override
public abstract String execute() throws Exception;
public void success() {
this.success = true;
}
public void success(Object data) {
this.data = data;
this.success = true;
}
public void fail() {
this.success = false;
}
public void fail(int errorCode, String errorMsg) {
this.success = false;
this.errorCode = errorCode;
this.errorMsg = errorMsg;
}
public Object getData() {
return data;
}
public boolean isSuccess() {
return success;
}
public int getErrorCode() {
return errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
}
3、实现类UserJsonAction,以后的注解练习都会基于这个类写:
package com.haochen.action;
import com.haochen.vo.User;
/**
*
* @title
* @Description
* @author chenhao
* @date 2014年12月3日 下午7:00:08
* @version 1.0
*/
public class UserJsonAction extends BaseJsonAction {
/**
*
*/
private static final long serialVersionUID = -5818584581746655517L;
private User user;
private String name;
@Override
public String execute() throws Exception {
user = new User();
user.setName("tom");
user.setAge(18);
user.setSex('M');
/**
* 1、返回值为JSON,配置文件struts.xml中的<action></action>不用设置<result
* type="json"></result>。
* 2、返回值为SUCCESS,配置文件struts.xml中的<action></action>需要设置<result
* type="json"></result>。
**/
return JSON;
}
public User getUser() {
return user;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
User.java
package com.haochen.vo;
import java.io.Serializable;
public class User implements Serializable {
private String name;
private int age;
private char sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
4、编写result.jsp,以ajax方式获取数据:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="<%=path%>/js/jquery-1.8.0.min.js"></script>
</head>
<body>
世界,你好.
<br>
</body>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type : "post",
url : "userJson.action?name=tom",
dataType : "json",
success : function(data) {
alert(data.data.name);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
</script>
</html>
5、在struts.xml文件中添加如下代码:
<action name="userJson" class="com.haochen.action.UserJsonAction"></action>
6、发布,访问http://localhost:8080/struts2demo/a/helloworld.action,提示“tom”表示成功。
分享到:
相关推荐
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
struts2-json-plugin,Struts JSON插件
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
在Struts2中,通过整合JSON插件,可以方便地将Action的返回结果转换为JSON格式,供前端JavaScript处理。 `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这...
使用Struts2 JSON插件时,需要注意JSON/XML注入的安全风险。攻击者可能尝试通过构造恶意输入来操纵JSON响应,因此确保对用户输入进行适当验证和过滤至关重要。 6. **性能优化**: - 对于大型应用,可以通过调整...
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...
标题"struts2-json-plugin-2.1.8.1.jar"表明这是Struts2 JSON插件的一个特定版本,2.1.8.1。在软件开发中,版本号的更新通常意味着修复了已知的错误,增加了新的特性,或者提高了性能。 "JsonPlugin.tld"是Tag ...
要使用此插件,首先需要在Struts2的配置文件(如struts-default.xml或struts-plugin.xml)中引入JSON插件的配置,通常会添加以下XML代码: ```xml <constant name="struts.enable.SlashesInActionNames" value=...
在Struts中,可以使用Struts2的JSON插件(Struts2-Json-plugin)来支持JSON的序列化和反序列化,使得服务器端的Java对象可以直接转换为JSON格式,发送到客户端,然后由JavaScript解析并操作。 在Struts-AJAX-JSON-...
1. **配置JSON插件**:首先,要在Struts2中启用JSON支持,我们需要在`struts.xml`配置文件中添加JSON插件的配置。这通常包括注册插件以及指定哪些Action需要返回JSON响应。 ```xml <constant name="struts.enable....
首先,这个压缩包中可能包含了`struts2-json-plugin-x.x.x.jar`,这是Struts2的JSON插件,它扩展了Struts2的核心功能,允许Action结果以JSON格式返回。这个插件实现了将Action的属性自动转换为JSON对象的功能,简化...
Struts2提供了JSON插件,允许开发者在Action类中返回JSON响应。安装插件后,只需在Action配置中启用JSON支持,就能自动处理JSON输出。 2. **Action配置**: 在Struts2的配置文件(struts.xml或struts.properties)...
标签中的"源码"可能意味着博客包含了实现这一功能的具体代码示例,而"工具"可能指的是使用到的Struts2插件或其他辅助工具。 通过这样的案例,开发者能够理解如何在Struts2应用中使用JSON和jQuery进行前后端数据交互...
在Struts 2的早期版本中,如2.0和2.1,为了支持JSON(JavaScript Object Notation)数据交换格式,开发者需要额外安装和配置JSON插件。JSON在Web应用中广泛用于前后端的数据传输,因为它轻量级、易于阅读和编写,...
Struts2的JSON插件正是为了方便开发者在Struts2框架中处理JSON数据而设计的。 首先,让我们深入了解JSON。JSON是一种独立于语言的数据交换格式,具有易于人阅读和编写,同时也易于机器解析和生成的特点。它的数据...
struts2-json-plugin-2.2.3-sources.jar 源码
在实际开发中,使用Struts 2 JSON插件可以提升Web应用的响应速度和用户体验,特别是在构建RESTful API或者需要与前端进行JSON数据交互的应用中。 总结来说,"struts-2.5.20-all"压缩包提供了完整的Struts 2框架,...
在使用Struts2的JSON插件时,为了确保一切正常运行,我们需要在项目中包含一些必要的JAR包。`struts2-json-plugin-2.2.1`这个版本的插件,意味着它是Struts2框架的2.2.1版本中的JSON支持。以下是这个插件正常工作所...