struts2.1.x+ajax+json

<%@ 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不支持)


struts2.1.x+ajax+json
  

下载附件的json插件,本插件支持struts2.1.x,但有人反应2.1.8也有问题,那struts2.2.x怎么办呢,请看struts2.2.x+ajax+json

你可能感兴趣的:(JavaScript,html,Ajax,json,Microsoft)