struts2:使用JQuery、JSON和AJAX处理请求详解编程语言

目的

在struts2中使用JQuery、JSON、AJAX等技术处理用户请求,并返回结果。返回结果可以是以JSONObject的方式返回,也可以是以JSONArray方式返回结果。

实现

1. 创建表示层JSP(testJJA.jsp)

此JSP也用于处理返回结果,因为是AJAX方式提交的,并不需要另外的显示页面。

<%@page language="java" import="java.util.*" pageEncoding="utf-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<script type="text/javascript" src="../../js/jquery.js"></script> 
<script type="text/javascript" src="../../js/json2.js"></script> 
<script> 
function entity(param1, param2, bigtext) { 
this.param1 = param1; 
this.param2 = param2; 
this.bigtext = bigtext; 
} 
function ajaxTransferText(which) { 
var bigtext = document.getElementById("BigText").value; 
var postParams = JSON.stringify(new entity("张三","密码123",bigtext)); 
if(which == 'object') { 
$.post("testjja.action", {  
jsonString : postParams,  
}, function (dataParam, textStatus){ 
// 返回的是JSONObject 
                        alert(dataParam.param1 + "|" + dataParam.status); 
},"json"); 
}else { 
$.post("testjja!getArray.action", {  
jsonString : postParams,  
}, function (dataParam, textStatus){ 
// 返回的是JSONArray 
var showValue = ""; 
for(var i=0; i<dataParam.length; i++) { 
showValue = showValue + dataParam[i] + "/n"; 
} 
alert(showValue); 
},"json"); 
} 
} 
</script> 
</head> 
<body> 
<textarea name="textarea" id="BigText" cols="45" rows="5">需要提交的信息主体...</textarea> 
<br/> 
<input type="button" value="提交试试(Object)" onclick="ajaxTransferText('object')"/>&nbsp;&nbsp; 
<input type="button" value="提交试试(Array)" onclick="ajaxTransferText('array')"/> 
</body> 
</html>

2. 创建处理Action类

package com.clzhang.ssh.demo7; 
import java.io.*; 
import java.util.*; 
import net.sf.json.JSONObject; 
import net.sf.json.JSONArray; 
import org.apache.struts2.ServletActionContext; 
public class TestJJAAction { 
private String jsonString; 
public String getJsonString() { 
return jsonString; 
} 
public void setJsonString(String jsonString) { 
this.jsonString = jsonString; 
} 
// 以JSONArray方式返回数据 
public String getArray() throws IOException { 
System.out.println("jsonString=" + jsonString); 
JSONObject jsonObject = JSONObject.fromObject(jsonString); 
System.out.println("param1=" + jsonObject.get("param1")); 
System.out.println("param2=" + jsonObject.get("param2")); 
System.out.println("bigtext=" + jsonObject.get("bigtext")); 
List<String> aList = new ArrayList<String>(); 
aList.add("param1=" + jsonObject.get("param1")); 
aList.add("param2=" + jsonObject.get("param2")); 
aList.add("bigtext=" + jsonObject.get("bigtext")); 
aList.add("status:成功受理请求!"); 
JSONArray jsonArray = JSONArray.fromObject(aList); 
ServletActionContext.getResponse().setContentType("text/html"); 
ServletActionContext.getResponse().setCharacterEncoding("utf-8"); 
ServletActionContext.getResponse().getWriter().printf(jsonArray.toString()); 
ServletActionContext.getResponse().getWriter().flush(); 
ServletActionContext.getResponse().getWriter().close(); 
return null; 
} 
// 以JSONObject方式返回数据 
public String execute() throws IOException { 
System.out.println("jsonString=" + jsonString); 
JSONObject jsonObject = JSONObject.fromObject(jsonString); 
System.out.println("param1=" + jsonObject.get("param1")); 
System.out.println("param2=" + jsonObject.get("param2")); 
System.out.println("bigtext=" + jsonObject.get("bigtext")); 
JSONObject jsonObject2 = new JSONObject(); 
jsonObject2.put("param1", jsonObject.get("param1")); 
jsonObject2.put("param2", jsonObject.get("param2")); 
jsonObject2.put("bigtext", jsonObject.get("bigtext")); 
jsonObject2.put("status","成功受理请求!"); 
System.out.println(jsonObject2.toString()); 
ServletActionContext.getResponse().setContentType("text/html"); 
ServletActionContext.getResponse().setCharacterEncoding("utf-8"); 
ServletActionContext.getResponse().getWriter().printf(jsonObject2.toString()); 
ServletActionContext.getResponse().getWriter().flush(); 
ServletActionContext.getResponse().getWriter().close(); 
return null; 
} 
}

3. 修改配置文件struts.xml

        <action name="testjja" class="com.clzhang.ssh.demo7.TestJJAAction"> 
</action>

4. 测试

打开IE,输入地址:http://127.0.0.1:8080/st/ssh/demo7/testJJA.jsp

效果如下:

struts2:使用JQuery、JSON和AJAX处理请求详解编程语言

单击“提交试试(Object)”按钮后,结果如下:

struts2:使用JQuery、JSON和AJAX处理请求详解编程语言

单击“提交试试(Array)”按钮后,效果如下:

struts2:使用JQuery、JSON和AJAX处理请求详解编程语言

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7973.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论