虽然struts 2.0使用的ajax框架是Dojo和DWR,但是,在使用了JSON后就开始喜欢上它了 ,当struts2.0溶入了JSON插件后就可以允许我们在action中返回json类型的结果(Result)。
这样使得DWR在简易性和灵活性上都比不上JSON插件,所以JSON插件值得向大家双手推荐。在这里要感谢JSON的创始人Musachy Barroso等同志的无私奉献。下面看一个例子:
一:下载JSON插件。
到http://code.google.com/p/jsonplugin/downloads/list下载JSON插件的JAR包,并将其加入到WebContent\WEB-INF\lib下。
二:编写action:
package test;
import java.util.HashMap;
import java.util.Map;
import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.Action;
public class JSONExample {
private String field1 = "田明启";
private int[] ints = {10, 20};
private Map map = new HashMap();
private String customName = "custom";
//'transient' fields are not serialized
private transient String field2;
//fields without getter method are not serialized
private String field3;
public String execute() {
map.put("John", "Galt");
return Action.SUCCESS;
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public int[] getInts() {
return ints;
}
public void setInts(int[] ints) {
this.ints = ints;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
@JSON(name="newName")
public String getCustomName() {
return this.customName;
}
}
三:配置action
<package name="Struts2_AJAX_DEMO" extends="json-default">
<action name="JSONExample" class="test.JSONExample">
<result type="json"/>
</action>
</package>
四:一个测试的页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<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 showdata() {
if(bXmlHttpSupport) {
var sUrl = 'JSONExample.action';
var oRequest = new XMLHttpRequest();
oRequest.onreadystatechange = function() {
if(oRequest.readyState == 4) {
var data = eval('(' + oRequest.responseText + ')');
var element= document.getElementById('tttt');
element.innerHTML = data.field1+","+data;
}
};
oRequest.open('POST', sUrl);
oRequest.send(null);
}
}
</script>
</head>
<body>
<input type="button" value="点我吧" onclick="showdata()" />
<div id="tttt"></div>
</body>
</html>
上面代码最关键的是
var data = eval('(' + oRequest.responseText + ')');
这句,它将json数据解析为javascript数据了。
oK,运行程序 点击按钮后,显示如下:
- 大小: 20 KB
分享到:
相关推荐
总的来说,Struts 2的JSON插件是实现JSON支持的关键组件,它使得Struts 2能够无缝地与JSON数据交互,从而提高了Web应用的交互性和效率。正确配置和使用JSON插件,可以帮助开发者构建更高效的AJAX应用或RESTful API。
Struts2.0 jar包是Java Web开发中的一个重要组件,它是Apache Struts框架的一个特定版本。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建可维护性高、结构清晰的Java应用。该框架极大...
Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...
5. **插件机制**:Struts2.0有丰富的插件库,如Freemarker和Velocity模板引擎,JSON和XML数据处理,以及各种验证框架的集成,大大增强了框架的功能和灵活性。 6. **异常处理**:Struts2.0提供了全局的异常处理机制...
Struts2.0 是一个非常流行的Java Web框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可维护的企业级应用程序。这个压缩包包含了Struts2.0的核心jar文件以及可能的源代码,使得开发者可以直接查看...
Struts2.0通过集成JSON插件和Dojo库,实现了与AJAX技术的深度结合。开发者可以利用、、等标签,轻松实现异步请求、自动补全等功能,提升用户体验。 十四、Struts2.0的高级主题和自定义功能 Struts2.0不仅在基础...
7. **插件系统**:Struts2拥有丰富的插件体系,如JSON插件、Freemarker插件、Spring插件等,方便扩展和集成其他功能。 接下来,让我们看看压缩包中的jar文件列表,这些文件是Struts2框架运行的基础: 1. `xwork-...
7. **struts2-json-plugin.jar**:该插件支持JSON(JavaScript Object Notation)数据交换格式,使Struts2可以方便地与JSON格式的数据进行交互,这对于RESTful API的开发非常有用。 8. **struts2-spring-plugin.jar...
9. **插件与第三方库集成**:探讨Struts2.0的插件系统,如Struts2-dojo-plugin、Struts2-json-plugin等,以及如何与其他流行库如Hibernate、Spring等进行集成。 10. **最佳实践与性能优化**:提供在实际开发中遵循...
接下来,我们关注Struts2.0与Spring的整合。Spring是一个全面的Java企业级应用框架,提供了依赖注入(DI)、面向切面编程(AOP)等功能。整合Struts2和Spring的主要目的是实现更灵活的控制层和更好的服务管理。 1. ...
对于Struts2.0框架来说,这些JAR文件包含了核心库、依赖库和插件,它们各自扮演着重要的角色: 1. **核心库**:Struts2的核心库主要包含以下组件: - `struts2-core.jar`:这是Struts2框架的基础,包括Action、...
在这个实例中,我们将深入探讨 Struts 2.0 和 AJAX 如何协同工作,以及如何使用 JSON(JavaScript Object Notation)作为数据交换格式。 首先,理解 Struts 2.0 框架的核心概念至关重要。它提供了一个灵活的控制器...
struts2-json-plugin,Struts JSON插件
此外,Struts2.0提供了丰富的插件机制,如Tiles插件可以方便地管理页面布局,Freemarker或Velocity模板引擎可以替换JSP作为视图层,JSON插件可以支持Ajax请求,以及Spring插件实现与Spring框架的无缝集成等。...
总的来说,Struts2.0.11.1是一个强大的MVC框架,它的各种插件和库为开发者提供了丰富的功能,帮助他们快速、高效地构建企业级Web应用程序。然而,随着技术的发展,Struts2逐渐被Spring Boot等现代框架所取代,但其...
11. **插件系统**:Struts2.0拥有丰富的插件库,如Freemarker和Velocity视图技术、JSON支持、Spring整合等,可以极大地扩展框架的功能。 学习Struts2.0的过程中,实践是非常重要的。初学者应该通过阅读提供的文档,...
8. **插件系统**:Struts2.0支持插件扩展,如Freemarker和Velocity模板引擎,以及Ajax支持等。 9. **最佳实践与性能优化**:提供关于代码组织、性能调优和安全性的建议,帮助开发者写出高效且安全的Struts2.0应用。...
通过Struts2的JSON插件,开发者可以轻松地实现异步请求,更新部分页面,提升用户体验。 在学习这个教程时,你可以通过"max struts.exe"这个文件深入了解和实践上述知识点。该文件可能是模拟的Struts2.0开发环境或者...
Struts2的JSON插件使得Action可以直接返回JSON响应,便于与Ajax和前端JavaScript交互,提升用户体验。 5. ** strut2-tiles-plugin**: Tiles是用于页面布局的一个框架,与Struts2结合可以方便地构建复杂页面结构。...