Jquery 发送ajax请求,action 或servlet 处理请求,并以xml格式返回数据,交给jquery 处理。
1.jquery 发送请求:
var provinceurl="/Struts2/jquery/selectProvince.action";
$.ajax({
url:provinceurl,
type: 'POST',
dataType: 'xml',
data: {name:"lixueli"},
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml);
$(xml).find("province").each(function(){
var provinceId=$(this).children("provinceid").text();
var provinceName=$(this).children("provinceName").text();
var tempOption = document.createElement("option");
tempOption.value = provinceId;
tempOption.innerHTML = provinceName;
province.append(tempOption);
});
}
});
2.struts2 action 处理请求
可以有两种方式返回数据
(1)直接在action中输出
public String selectProvince() throws IOException {
response.setContentType("text/xml;charset=utf-8"); //(1)一定要在(2)的前面,不然会乱码
response.setCharacterEncoding("UTF-8"); //(2)
response.setHeader("Cache-Control", "no-cache");
PrintWriter out=response.getWriter(); //(3)一定要在(1)(2)的后面
ProvinceDAO provinceDAO = new ProvinceDAO();
List<Province> list = provinceDAO.getAllProvince();
StringBuilder sb=new StringBuilder();
sb.append("<?xml version='1.0' encoding='UTF-8'?><provinces>");//最外层节点唯一,不然报错
for(Province p:list)
{
sb.append("<province>");
sb.append("<provinceid>"+p.getProvinceId()+"</provinceid>");
sb.append("<provinceName>"+p.getProvinceName()+"</provinceName>");
sb.append("</province>");
}
sb.append("</provinces>");
out.print(sb.toString());
out.flush();
out.close();
return null;
}
这种方法不用返回结果。
<struts>
<include file="struts-default.xml"/>
<package name="/jquery" extends="struts-default" namespace="/jquery">
<action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
</action>
</package>
</struts>
(2)把数据输出到页面
request.setAttribute("provinces", list);//前台页面取得数据
jsp页面代码:
<?xml version='1.0' encoding='UTF-8'?>//一定放在页面开始位置,否则会报解析错误
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.hyts.util.*,java.util.*"%>
<%
List<Province> provinces = (List<Province>)request.getAttribute("provinces");
%>
<provinces>
<%
for(Province p:provinces)
{
%>
<province>
<provinceid><%=p.getProvinceId()%></provinceid>
<provinceName><%=p.getProvinceName()%></provinceName>
</province>
<%
}
%>
</provinces>
返回到页面的配置
struts.xml配置
<struts>
<include file="struts-default.xml"/>
<package name="/jquery" extends="struts-default" namespace="/jquery">
<action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
<result name="success">/jqueryxml/provinces.jsp</result>//数据先传递到页面
</action>
</package>
</struts>
分享到:
相关推荐
在本例中,Struts2的Action将处理jQuery发起的Ajax请求,并返回JSON格式的数据。 **JSON (JavaScript Object Notation)** 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Ajax请求中...
在Struts2中,我们可以配置Action类来处理Ajax请求,并以JSON格式返回数据。 以下是一个简单的示例步骤: 1. **前端设置**: 在HTML页面中,使用jQuery发起Ajax请求。例如: ```javascript $.ajax({ url: ...
2. **JSON与Struts2的结合**:Struts2 Action执行后返回一个JSON字符串,这个字符串被jQuery AJAX请求接收。通过Struts2的插件,如struts2-json-plugin,可以在Action类中直接返回一个包含JSON数据的对象,Struts2会...
在Struts2框架下,我们可以使用Jquery的Ajax方法向服务器发送请求,获取JSON或XML数据,然后动态更新页面的部分内容。 在"06-mvc之struts2.ppt"中,可能涵盖了以下内容: 1. Struts2框架的基本概念和架构 2. 如何...
标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...
在Web开发中,jQuery的AJAX功能经常被用于与服务器进行异步数据交换,而Struts2作为一款流行的Java Web框架,提供了处理前端请求的能力。本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action...
总结起来,"Jquery_Ajax_Struts2_Action_JSP_Json"的示例展示了如何利用jQuery的Ajax功能与Struts2框架相结合,通过JSON数据格式在客户端和服务器端之间进行高效的数据交换,从而实现无刷新的页面更新,提升Web应用...
通过配置Struts2拦截器、使用JSON插件以及编写适当的动作类和前端页面,开发者可以轻松实现异步数据请求和更新。这种技术在现代Web应用中广泛使用,特别是在需要动态加载数据的场景下,如分页、搜索结果展示等。
在本示例中,Struts2将处理来自jQuery的Ajax请求,并返回JSON格式的响应数据。 jQuery则是一个轻量级的JavaScript库,简化了DOM操作、事件处理和Ajax交互。在本例中,jQuery的`$.ajax()`方法用于发起异步请求,获取...
通过JavaScript(通常是jQuery库)创建异步请求,我们可以向Struts2 Action发送JSON数据,同时接收返回的JSON数据。例如,使用jQuery的`$.ajax`或`$.getJSON`方法,构建一个请求,将JSON对象作为数据发送,并设置...
jQuery的$.ajax()方法是实现AJAX的核心,它允许开发者发送异步请求到服务器,并处理返回的数据。 Struts 1.3是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于构建可维护性和可扩展性高的企业级...
在Struts2的配置文件(struts.xml)中,我们需要定义一个对应的Action,该Action将处理来自Ajax请求的数据,并返回响应。例如: ```xml <package name="default" namespace="/" extends="struts-default"> <action...
总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...
2. **Struts2 Action**:创建处理商品操作的Action类,如`AddProductAction`、`DeleteProductAction`等,这些Action对应用户的请求,处理业务逻辑并返回结果。 3. **Service层**:定义业务接口和服务实现,用于处理...
Struts2 JSON插件增强了框架处理JSON请求和响应的能力,使得开发者能够方便地将Action的结果以JSON格式输出,供Ajax调用。通过这个插件,你可以配置Struts2的动作类,使其能够直接返回JSON对象,而无需额外的视图层...
在Struts2配置文件(struts.xml)中,你需要为这个Action定义一个URL映射,确保jQuery可以正确地发送请求到服务器: ```xml <package name="default" namespace="/" extends="struts-default"> <action name="your...
在`struts.xml`中配置这个Action,确保它能接收GET或POST请求,并指定一个结果类型为`json`,这使得Struts2能够以JSON格式返回数据。 2. **编写AjaxAction**: 创建`AjaxAction.java`,在其中定义一个方法,如`...
- 创建Struts2的Action,处理前端的AJAX请求。Action会调用服务层方法,执行业务逻辑。 - 在Struts2的配置文件中定义Action的映射,以及返回的结果类型。对于JSON数据,可以使用Struts2的JSON插件,使得Action可以...
在本案例中,我们将探讨如何使用 Struts2 的 Action 配合 jQuery 的 AJAX 方法来实现实时验证和数据交换。 首先,我们需要了解 jQuery。jQuery 是一个强大的 JavaScript 库,它简化了 DOM 操作、事件处理、动画以及...
在实现上述功能时,需要确保Struts2的配置文件(struts.xml)正确地定义了相应的Action,并且Action类中包含了处理AJAX请求的方法。同时,前端的HTML和jQuery代码需要正确地绑定事件和处理响应。 总的来说,结合...