<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page session="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href=<%=basePath%> />
<title>JSON Plugin</title>
<script type="text/javascript">
var bXmlHttpSupport = (typeof XMLHttpRequest != "undefined" || window.ActiveXObject);
if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
function XMLHttpRequest() {
var arrSignatures = [ "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
for ( var i = 0; i < arrSignatures.length; i++) {
try {
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) { /*ignore*/
}
}
throw new Error("MSXML is not installed on your system.");
}
}
function retrieveBook() {
if (bXmlHttpSupport) {
var sUrl = 'ajax.action';
var oRequest = new XMLHttpRequest();
oRequest.onreadystatechange = function() {
if (oRequest.readyState == 4) {
if (oRequest.status == 200) {
var oBook = eval('(' + oRequest.responseText + ')');
var bookHolder = document.getElementById('bookHolder');
var sBook = '<p><b>ISBN: </b>' + oBook.ISBN + '</p>';
sBook += ('<p><b>Title: </b>' + oBook.title + '</p>');
sBook += ('<p><b>Price: </b>$' + oBook.price + '</p>');
sBook += ('<b><i>Comments: </i></b><hr/>');
for (i = 0; i < oBook.comments.length; i++) {
sBook += ('<p><b>#' + (i + 1) + ' </b>'
+ oBook.comments[i] + '</p>');
}
bookHolder.innerHTML = sBook;
}
}
};
oRequest.open('POST', sUrl);
oRequest.send(null);
}
}
</script>
</head>
<body>
<input type="button" value="Retrieve Book" onclick="retrieveBook()" />
<div id="bookHolder"></div>
</body>
</html>
struts2
package com.fhqiwcw.action;
import java.util.ArrayList;
import java.util.List;
import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
public class AjaxAction extends ActionSupport {
private static final long serialVersionUID = -6784977600668791997L;
private int bookId;
private String title;
private double price;
private List<String> comments;
private transient String secret1;
private String secret2;
@JSON(name = "ISBN")
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public List<String> getComments() {
return comments;
}
public void setComments(List<String> comments) {
this.comments = comments;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String execute() {
bookId = 15645912;
// title = "Max On Java";
price = 0.9999d;
comments = new ArrayList<String>(3);
comments.add("It's no bad!");
comments.add("WOW!");
comments.add("No comment!");
secret1 = "You can't see me!";
secret2 = "I am invisible!";
return SUCCESS;
}
}
struts2配置
<action name="ajax" class="com.fhqiwcw.action.AjaxAction">
<result type="json" />
</action>
结果预览(貌似IE不支持)
下载附件的json插件,本插件支持struts2.1.x,但有人反应2.1.8也有问题,那struts2.2.x怎么办呢,请看struts2.2.x+ajax+json。
- 大小: 4.9 KB
分享到:
相关推荐
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
这个压缩包包含了两个关键的组件:json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar,它们是Struts2支持JSON(JavaScript Object Notation)序列化和反序列化的关键。 1. **json-lib-2.1.jar**: JSON是一种轻...
总结以上,Struts2.1.8.1和jQuery1.4.2的结合使用,允许开发者创建异步Web应用,通过Ajax请求获取和显示JSON数据,提高用户体验。通过理解和熟练运用这些知识点,可以构建出高效、响应式的Web应用程序。在实际开发中...
### Struts2.1.8.1与jQuery1.4.2实现JSON数据交互详解 在Web开发领域,Struts2框架因其强大的功能和灵活性而备受开发者青睐。结合jQuery库,能够实现前后端数据的高效交换,特别是通过JSON格式进行数据传输更是常见...
在这个"struts2.1+json+jquery用户名校验"项目中,我们重点关注的是如何利用这些技术进行前端与后端的数据交互,特别是关于用户名的验证。 首先,Struts2.1是一个基于MVC(Model-View-Controller)设计模式的Java ...
7. **struts2-json-plugin.jar**:支持JSON数据格式的输入和输出,方便与AJAX或移动设备进行通信。 8. **struts2-spring-plugin.jar**:如果项目中使用了Spring框架,这个插件可以帮助集成Struts 2和Spring,实现...
Struts2.1.8.1是Apache软件基金会开发的一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个API文档压缩包“struts2.1.8.1-API.rar”包含了该版本Struts2的核心组件、接口、类和方法的详细...
Struts2.1、JSON和jQuery1.4是Web开发中的关键组件,它们结合使用可以构建出高效且用户友好的应用程序。在这个特定的场景中,我们看到的是一个利用这些技术进行用户名验证的实现。 首先,Struts2.1是Apache Struts...
在Struts2框架中,该插件允许开发者将Action的返回结果直接转换为JSON格式,方便进行Ajax(Asynchronous JavaScript and XML)操作,提高Web应用的响应速度和用户体验。 标题"struts2-json-plugin-2.1.8.1.jar"表明...
4. **struts2-json-plugin.jar**:支持JSON(JavaScript Object Notation)格式的输入输出,使得Struts 2能够与AJAX和移动应用更好地交互。 5. **struts2-dojo-plugin.jar**:提供了与Dojo JavaScript库的集成,...
6. **struts2-json-plugin.jar**:此插件支持JSON(JavaScript Object Notation)格式的数据交换,使Struts 2能够更好地与AJAX和RESTful服务交互。 此外,根据应用的具体需求,可能还需要其他依赖,如国际化支持、...
在原来的项目中集成juery的ajax功能,返回json串,结果报了一大堆版本冲突以及jar包缺失的问题,在网上查了老半天资料终于成功了,附传资源包以及我做的小例子大家共享下,注意版本一定要对应上。另外在ajax等待页面...
Struts2-core-2.1.8.1.jar 是一个重要的Java Web开发库,它是Apache Struts框架的核心组件。Struts2是一个基于Model-View-Controller(MVC)设计模式的开源框架,用于构建企业级的Java Web应用程序。这个特定版本...
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...
在前端,可以通过JavaScript或者jQuery等库,使用AJAX请求Struts2的JSON Action,并处理返回的JSON数据。例如,使用jQuery的`$.ajax()`方法: ```javascript $.ajax({ url: 'myAction.json', type: 'POST', ...
这包括Struts2的核心库、依赖的第三方库,如OGNL(Object-Graph Navigation Language)用于表达式语言,Freemarker或JSP作为视图技术,以及各种插件如Ajax、JSON支持等。开发者需要将这些库添加到项目的类路径中,以...
这个实例项目展示了如何在Struts 2.1框架下,通过AJAX和JSON实现动态交互的Web应用。开发者可以通过这个实例学习如何配置Struts 2的Ajax插件,编写Action以返回JSON数据,以及在客户端使用JavaScript处理这些数据,...
Struts2.1版本相对于更早的版本,可能包含了一些性能优化和新特性,例如改进的拦截器(Interceptors)机制,增强的配置管理,以及对AJAX和REST的支持等。这些改进使开发者能够更高效地编写和组织代码。 在描述中...
8. **Plug-in机制**:Struts 2具有强大的插件机制,可以轻松扩展框架功能,如AJAX支持、文件上传下载、JSON响应等。 9. **Validation框架**:Struts 2提供了内置的验证框架,可以在客户端和服务器端进行数据验证,...