一,在action层
设置返回的数据类型:
二,在jsp接受action传过来的数据
解析相应的数据
例如
=======文本:输出文字
设置
response.setContentType("text/xml; charset=utf-8"); 文本
PrintWriter out = response.getWriter();
out.print("欢迎测试");
out.close();
接收,解析
var info=xmlHttp.responseText;
======文本(把xml以字符串输出):更新城市列表
设置
response.setContentType("text/xml; charset=utf-8"); 文本
PrintWriter out = response.getWriter();
StringBuffer buffer=new StringBuffer("<?xml version=\"1.0\" encoding=\"utf-8\" ?><result>");
buffer.append("<cityname cid='1'>");
buffer.append(“北京”);
buffer.append("</cityname>");
buffer.append("<cityname cid='2'>");
buffer.append(“上海”);
buffer.append("</cityname>");
buffer.append("</result>");
out.print(buffer.toString());
out.close();
接收,解析xml
function updateList(){
clearList();
var city=document.getElementById("city");
var text = xmlHttp.responseText;
var xD=xmlHttp.responseXML;
if(xD){ //浏览器兼容,解析成dom树
xD.loadXML(text);
}else{ //浏览器兼容,解析成dom树
var oParser = new DOMParser();
xD= oParser.parseFromString(text,"text/xml");
//alert(xD.getElementsByTagName("a"));
}
var res=xD.getElementsByTagName("cityname");
var option=null;
for(i=0;i<res.length;i++){
option=document.createElement("option");
option.appendChild(document.createTextNode(res[i].firstChild.nodeValue));
option.setAttribute("value",res[i].getAttribute('cid'));
city.appendChild(option);
}
}
======文本(把json以字符串输出):更新城市列表
设置
PrintWriter out = response.getWriter();
StringBuffer buffer = new StringBuffer("[");
buffer.append("{\"id\":\"1\","); //格式要规范,变量名要双引号
buffer.append(",");
buffer.append("\"cityname\":\"北京\",");
buffer.append("\"provinceid\":北京市}");
buffer.append("]");
out.print(buffer.toString());
out.close();
接收,解析json
function updateList(){
clearList();
var city=document.getElementById("city");
var res=eval(xmlHttp.responseText); //eval 把字符串类型的脚本变成语句执行,这里转json
var option=null;
for(i=0;i<res.length;i++){
option=document.createElement("option");
option.appendChild(document.createTextNode(res[i].cityname));
option.setAttribute("value",res[i].id);
city.appendChild(option);
}
}
======文本(把json以字符串输出):输出用户账号和密码列表
response.setContentType("text/xml; charset=UTF-8");
UserInfo user1=new UserInfo();
userInfo.setUserName("admin01");
userInfo.setPwd("adminpwd01");
UserInfo user2=new UserInfo("admin01", "adminpwd02");
List<UserInfo> list=new ArrayList<UserInfo>();
list.add(user1); list.add(user2);
JSONArray userList=JSONArray.fromObject(list);
out.print(userList);
out.close();
相关推荐
这个Action类是Struts框架的一部分,它处理来自AJAX请求的数据,并向客户端返回一个简单的文本响应。 ##### 4. Struts配置文件 ```xml <action type=...
当Action返回的是XML数据时,我们需要在jQuery.AJAX中指定`dataType: 'xml'`,以便jQuery能正确解析响应。一旦请求成功,`success`回调函数会接收到XML对象,我们可以使用DOM操作或jQuery方法来提取和处理数据。 ...
// 处理返回的JSON数据 }, error: function(error) { console.error(error); } }); ``` 在Struts2 Action中: ```java public class YourAction extends ActionSupport { private String key; @Param("key")...
3. **无刷新文件上传**:指用户在上传文件的过程中,网页不会重新加载或跳转至其他页面,而是通过某种机制(如AJAX)实现在当前页面完成文件上传过程并返回结果。 #### 二、实现原理及步骤 ##### 1. 前端设计思路 ...
1. **Struts2 Result**:在Struts2配置中,我们可以定义一个Result来处理返回的响应。例如,上面配置的`/jsp/ajaxResponse.jsp`可以生成响应内容。 2. **JSP响应**:在`ajaxResponse.jsp`中,我们可以根据需要生成...
### AJAX调用ACTION返回XML或LIST详解 #### 一、背景与目的 在Web开发领域,前后端交互是实现动态网站的关键技术之一。通常情况下,开发者可能会选择使用JSP + Ajax + Servlet或JSP + Struts2的方式进行开发。然而...
dataType: 'json', // 预期服务器返回的数据类型 success: function(cities) { var citySelect = $('#city'); citySelect.empty(); // 清空城市选项 cities.forEach(function(city) { citySelect.append('...
// 在这里处理返回的数据,例如更新页面元素 }, error: function(xhr, status, error) { // 错误回调 console.error("Error:", error); } }); ``` 接下来,我们会在Struts2的Action中处理请求。创建一个继承自...
在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2...同时,注意在处理JSON返回值时,确保正确解析和使用数据,避免出现“[object, object]”这样的错误提示。
在"SSH+JSP+SQL+Ajax试题与答案"的学习资源中,你可能会遇到以下类型的题目: 1. **SSH框架整合**:如何配置Struts、Spring和Hibernate,实现它们之间的协作。 2. **JSP语法与EL(Expression Language)**:理解JSP...
在处理完业务逻辑后,Action可以通过`ActionSupport`的`setFieldErrors()`、`addMessage()`等方法设置结果,然后返回一个表示成功或失败的结果名称。 当Ajax请求成功时,jQuery的`success`回调函数会被调用,你可以...
通过设置`dataType: 'json'`,我们可以指定数据类型为JSON,使得服务器返回的数据能被自动解析成JavaScript对象。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
Action类可能有一个返回JSON数据的方法,JSP页面可能包含一个AJAX调用的示例,而JavaScript代码则负责处理响应并更新页面。 综上所述,Struts2与AJAX的结合使得Web应用能够实现无刷新的用户体验,提高了交互性和...
在`action.js`中,可以配置请求的URL(如`action.html`),数据类型,以及成功或失败的回调函数。 4. **服务器端处理**:`JSP`接收到请求后,会解析请求参数。对于POST请求,这些参数通常位于请求体中;对于GET请求...
在另一个例子中,通过 jQuery AJAX 从 action 传递值到 JSP 页面,通过获取特定输入字段的值并附加到请求数据中,再发送到服务器。 总结来说,jQuery AJAX 提供了一套简洁的 API,使得向 JSP 等服务器端组件提交...
在后端,我们需要创建一个Struts2 Action类,用于处理Ajax请求并返回JSON数据。例如,创建一个名为`AjaxAction.java`的类: ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2....
这里的问题是关于如何使用Ajax提交数据到后台的JSP页面,并在处理完数据后进行页面跳转。我们将详细探讨这个问题以及相关的知识点。 首先,我们看`logincheck.jsp`页面中的代码,它接收通过Ajax传递的参数: ```...
在JSP中,使用jQuery和AJAX进行前后台交互是一种常见的技术手段,特别是在处理动态数据和页面局部更新时。在本示例中,主要讲解如何通过AJAX将JSON格式的参数传递给服务器,并接收服务器返回的JSON数据。 首先,...
本文将深入探讨如何利用Ajax进行异步请求,特别是针对action的调用,并接收JSON(JavaScript Object Notation)数据,最后将这些数据展示在页面上。 首先,我们需要理解Ajax的基本工作原理。Ajax的核心是...
这里定义了一个名为"ajaxAction"的Action,当接收到Ajax请求时,它将执行`AjaxAction`类,并将结果以JSON格式返回到`/ajaxResult.jsp`。 2. **创建AjaxAction**:在`AjaxAction.java`中,你需要定义一个方法来处理...