1.建立my.struts2.web.JSONResult(自定义结果类,只要实现com.opensymphony.xwork2.Result接口)
package my.struts2.web;
import java.io.PrintWriter;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import com.opensymphony.xwork2.util.ValueStack;
import net.sf.json.JSONArray;
public class JSONResult implements Result{
@Override
public void execute(ActionInvocation invocation) {
try {
ServletActionContext.getResponse().setContentType("text/plain");
PrintWriter responseStream = ServletActionContext.getResponse().getWriter();
ValueStack valueStack = invocation.getStack();
Object jsonModel = valueStack.findValue("jsonModel");
responseStream.println(JSONArray.fromObject(jsonModel));
} catch (Exception e) {
System.out.println(e);
}
}
}
2.structs2 XML配置
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="tutorial" extends="struts-default" >
<result-types>
<result-type name="jsonResult" class="my.struts2.web.JSONResult"/>
</result-types>
<default-interceptor-ref name="defaultStack"/>
<action name="ajaxTest" class="my.struts2.web.AjaxTestAction">
<result type="jsonResult"/> </action>
</package>
</struts>
3.建立my.struts2.web.AjaxTestAction类
package my.struts2.web;
import com.opensymphony.xwork2.ActionSupport;
public class AjaxTestAction extends ActionSupport{
public String execute() {
User user = new User();
user.setName("huatu122");
user.setPs("xxxxxx");
setJsonModel(user);
return "success";
}
private Object jsonModel;
public Object getJsonModel() {
return jsonModel;
}
public void setJsonModel(Object jsonModel) {
this.jsonModel = jsonModel;
}
}
4.建立my.struts2.web.User
package my.struts2.web;
public class User {
private String name;
private String ps;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPs() {
return ps;
}
public void setPs(String ps) {
this.ps = ps;
}
}
5.建立ajaxTest.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Structs2 AjaxTest</title>
<script type="text/javascript">
function ajaxResponse(){
if(req.readyState==4){
var myObject = eval('(' + req.responseText + ')');
alert("name:"+myObject[0].name);
alert("ps:"+myObject[0].ps);
}
}
function ajaxPost(callback, url) {
if (window.XMLHttpRequest){
req = new XMLHttpRequest();
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send(null);
}else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send();
}
}
}
</script>
</head>
<body onload="ajaxPost(ajaxResponse,'/s2/ajaxTest.action')">
</body>
</html>
分享到:
相关推荐
在"struts2jsonajax"项目中,我们看到Struts2与JSON和AJAX进行了整合。Struts2通过Action和Result来处理用户的请求,并返回响应。在这个整合中,Struts2 Action将处理业务逻辑后,会以JSON格式返回数据,而非传统的...
标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...
"struts2 json Ajax 整合所需全部jar包.zip"这个压缩包文件包含了实现上述功能所需的JAR库。lib目录下的文件可能包括Struts2的核心库、JSON处理库以及可能的Ajax支持库,如jQuery或Prototype。这些库可能包括: 1. ...
你需要设置一个特定的结果类型,比如`json`,这将使Struts2以JSON格式返回数据,非常适合Ajax调用。 2. **Ajax请求**:在客户端,通常使用JavaScript库如jQuery来发送Ajax请求。一个简单的例子是使用`$.ajax()`函数...
在这个"struts2 json ajax示例 google提示"中,我们将探讨如何在Struts2框架中利用JSON和AJAX技术实现Google搜索建议那样的动态数据加载功能。 首先,我们需要在Struts2项目中集成JSON插件。Struts2 JSON插件提供了...
Struts2提供了`struts2-jquery-plugin`和`struts2-json-plugin`两个插件来实现Ajax功能。在这个实例中,我们将主要使用`struts2-json-plugin`,它能够方便地将Action的结果以JSON格式返回给客户端。 1. **环境配置*...
【标题】"ZTree+Struts2+ajax+json实现checkbox权限树"涉及的技术栈主要集中在前端的ZTree,后端的Struts2框架,以及数据交互中的Ajax和JSON。这个项目的核心目标是构建一个可复选的权限树形结构,用户通过勾选节点...
这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...
总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...
在Struts2中,我们可以利用Ajax和JSON来实现数据的异步交互。 **一、引入所需库** 首先,为了在Struts2中使用Ajax和JSON,我们需要引入以下库: 1. Struts2的核心库:`struts2-core.jar` 2. Struts2的JSON插件:`...
在Struts2框架中实现JSON和AJAX,可以帮助开发者构建更加高效和用户友好的界面。首先,我们需要在`struts.xml`配置文件中启用JSON支持。通过添加`<constant>`标签设置`struts.json.enable=true`,开启Struts2的JSON...
在Struts2框架中整合Ajax以实现异步数据交互,JSON(JavaScript Object Notation)扮演了关键角色。JSON是一种轻量级的数据交换格式,它允许Web应用与服务器之间高效地传输数据,而无需进行繁琐的HTTP请求。在这个...
5. **[原创]Struts2 + JQuery + JSON实现AJAX - Struts - Java - ITeye论坛.mht**:这个文件可能是一个论坛帖子,详细介绍了如何结合Struts2、jQuery和JSON实现AJAX功能。帖子中可能会涵盖Action配置、JSON结果类型...
7. **示例代码**:在提供的压缩包文件“struts2中实现AJAX的小实例”中,可能包含了一个简单的Struts2 Action、对应的JSP页面以及JavaScript代码。Action类可能有一个返回JSON数据的方法,JSP页面可能包含一个AJAX...
在"Struts2+Ajax实现的用户登录"场景中,首先,我们需要在Struts2的配置文件(struts.xml)中定义一个Action,这个Action将处理用户的登录请求。Action通常会包含一个方法,比如`execute()`,该方法会在用户提交登录...
综上所述,Struts2和Ajax的结合使用,能够实现高效的前后端数据交互,通过JSON数据格式,使数据传输更加便捷和高效。在实际项目中,开发者应熟练掌握这两种技术的结合,以提高Web应用的用户体验。
struts2 json jquery ajax实现用户登陆及业面跳转
通过将Struts2与JSON整合,可以轻松地与AJAX技术结合,实现前后端数据的实时交互。例如,在前端使用jQuery等库发起AJAX请求,获取或发送JSON格式的数据,而在后端,Struts2框架则能够无缝处理这些JSON数据,从而构建...
总的来说,Struts2的JSON插件大大简化了基于JSON的Web服务开发,使得Java开发者能够轻松地在Struts2框架内处理JSON数据,实现了前后端的高效通信。了解并熟练掌握这一插件的使用,对于提升Java Web应用的开发效率和...
Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...