<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script type="text/javascript" src="js/common/prototype.js"></script>
<script language="javascript" type="text/javascript">
function getJson()
{
var url = 'JSONExample.action';
var pars = '';
var myAjax = new Ajax.Request(url,{
method:'get',
encoding:'UTF-8',
parameters:pars,
onComplete:function(json){
var JSONobj=eval('('+ json.responseText +')');
var html="" ;
var menuid="";
html += "<li>" + JSONobj.newName +"</li>";
var ints = JSONobj.ints;
for (var i=0; i< ints.length; i++){
html += "<li>" + ints[i] +"</li>";
}
var map = JSONobj.map;
for(array in map){
html += "<li>" + array + ":" + map[array] +"</li>";
}
$("item").innerHTML=html;
}
}
}
</script>
<body>
<input type="button" name="button" id="button" onclick="getJson()"value="点击测试">
<div id="item"></div>
</body>
</html>
struts.xml
配置文件
<package name="example" extends="json-default">
<action name="JSONExample" class="jSONExample" method="executeJson">
<result type="json"/>
</action>
</package>
这里使用到了
json struts2
结合的插件,请自己去下载那个
jar
包
action
package action;
import java.util.HashMap;
import java.util.Map;
import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
public class JSONExample extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 4588482034890372410L;
// 封装请求参数的三个属性
//format= 例如"yyyy-MM-dd'T'HH:mm:ss"。
private String field1;
private transient String field2;
private String field3;
// 封装处理结果的属性
private int[] ints = { 10, 20 };
@SuppressWarnings("unchecked")
private Map map = new HashMap();
private String customName = "custom";
@SuppressWarnings("unchecked")
public String executeJson() {
map.put("name1", "sinlff1");
map.put("name2", "sinlff2");
map.put("name3", "sinlff3");
return SUCCESS;
}
// 三个请求参数对应的setter和getter方法
@JSON(serialize = false) //format
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
@JSON(serialize = false)
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
@JSON(serialize = false) //format
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
public void setCustomName(String customName) {
this.customName = customName;
}
// 封装处理结果的属性的setter和getter方法
public int[] getInts() {
return ints;
}
public void setInts(int[] ints) {
this.ints = ints;
}
@SuppressWarnings("unchecked")
public Map getMap() {
return map;
}
@SuppressWarnings("unchecked")
public void setMap(Map map) {
this.map = map;
}
// 使用注释语法来改变该属性序列化后的属性名
@JSON(name = "newName")
public String getCustomName() {
return this.customName;
}
}
分享到:
相关推荐
Struts2、JSON和Ajax是Web开发中的三个关键组件,它们在构建动态、交互式的Web应用程序中发挥着重要作用。Struts2是一个强大的MVC(Model-View-Controller)框架,用于组织和管理Java web应用程序的结构。JSON...
在AJAX(Asynchronous JavaScript and XML)和Struts框架结合使用时,JSON常作为数据传输的载体,替代XML,因为它的体积更小,解析速度更快。 在上述实例中,开发者使用了JSON库`json-lib-2.1-jdk15.jar`来处理JSON...
例如,`prototype.js`或`script.aculo.us`库用于创建AJAX请求,而`json2.js`可能用于在浏览器不支持JSON时提供JSON对象。 3. **Struts 2配置文件**:可能包含对AJAX插件的配置,以及Action的配置,指定哪些Action...
2. **JavaScript库:** 在实际应用中,开发者通常使用jQuery、Prototype等JavaScript库简化Ajax操作,它们提供了更友好的API,例如jQuery的$.ajax()方法。 3. **DOM操作:** Ajax获取数据后,通过修改DOM(Document...
Struts和Ajax是两种在Web开发中广泛应用的技术。Struts是一种基于MVC(Model-View-Controller)设计模式的Java Web框架,它主要用于构建企业级的、可维护性高的Web应用。而Ajax(Asynchronous JavaScript and XML)...
1. **Struts2 AJAX插件**:Struts2提供了官方的AJAX插件,它基于Prototype库,允许开发者轻松地将Ajax功能添加到Action中。通过使用此插件,开发者可以创建响应式表单和无刷新操作。 2. **Json结果类型**:Struts2...
这个插件极大地增强了Struts2应用程序的可交互性和响应速度,尤其在开发Web应用时,提供与前端进行JSON数据交换的能力至关重要。在给定的资源中,我们看到的是`struts2-json-plugin-2.3.8.jar`,这是该插件的一个...
Struts 2与AJAX是Web开发领域中的两个关键技术,它们在构建动态、交互式的Web应用程序中发挥着重要作用。Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java EE框架,它提供了丰富的特性来简化企业级...
3. **Struts与Ajax的结合**:书中会讨论如何在Struts中使用Ajax库,如Prototype、jQuery或Dojo,以及如何创建自定义的Ajax动作。这通常涉及到在JSP页面中添加Ajax调用,以及在Struts Action中处理这些请求。 4. **...
**Ajax+Struts用户验证步骤** 1. **前端准备**: - **原始方法**:使用JavaScript的XMLHttpRequest对象创建一个HTTP请求,设置请求方法、URL、数据等参数,然后监听状态变化,处理服务器响应。 - **Prototype库**...
3. **JSON响应**:Struts2支持JSON结果类型,可以直接将Action的返回值转换为JSON格式,前端通过Ajax请求获取这个JSON数据,然后动态更新DOM元素。 4. **分离视图**:利用Ajax,我们可以将视图部分分解为多个独立的...
2. JSON:Ajax常用的数据交换格式,比XML更轻量级,易于读写。 3. JavaScript库:jQuery、Prototype等库简化了Ajax的使用,提供了一系列方便的API。 四、Java + Servlet + Ajax 结合应用 1. 用户交互:Ajax允许...
添加完成后,Action可以通过Struts2的JSON插件或自定义Result类型将响应封装为JSON格式,方便Prototype.js解析。 总结来说,本示例通过整合SSI、Ajax(Prototype.js)以及后端的Struts2、Spring和Ibatis框架,展示...
开发者可以使用Struts2的Ajax插件,如JQuery插件,或者直接利用JavaScript库(如jQuery或 Prototype)来发送AJAX请求。在Action类中,可以定义一个特殊的方法处理AJAX请求,并返回JSON对象,然后前端JavaScript代码...
3. **Ajax的应用**:学习如何使用jQuery或其他库(如 Prototype 或 AngularJS)来创建Ajax请求,以及如何在服务器端处理这些请求,并返回JSON或XML数据给前端。 4. **异常处理和事务管理**:了解如何在Spring中配置...
2. **JSON数据交换**:相比于XML,JSON(JavaScript Object Notation)在Ajax 2中更常用于数据传输,因为其结构简单,解析速度快,更适应于JavaScript环境。 3. **DOM操作**:Ajax 2允许动态修改HTML文档对象模型...
**Ajax与Struts整合应用详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了...
2. **Struts Action响应**:在服务器端,Struts Action需要处理Ajax请求,返回JSON或XML数据,而不是跳转到新的页面。 3. **配置Action**:在`struts-config.xml`中,为Ajax请求配置特定的Action,设置返回类型为...
通过使用Struts2的JQuery插件,开发者可以在Struts2应用中无缝地利用jQuery的Ajax功能。 3. **Action的Ajax响应**:在Struts2中,Action类可以被配置为返回XML、JSON等格式的数据,这些数据可以作为Ajax请求的响应...