`
chinrui
  • 浏览: 98014 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

struts处理AJAX请求

阅读更多

struts处理AJAX请求

1、使用AJAX向struts发出请求的时候,在struts.xml配置里面,要把<action>的返回值设为空,也就是所调用Action方法是没有返回值的,而是通过ServletActionContext获取HttpServletResponse将要返回的数据返回回去。

strtus.xml里面的部分配置:

 

<action name="province" class="com.hpu.action.RegisterAction" method="getProvince">
	<result></result>
</action>

 

处理请求的RegisterAction的部分实现:

 

public void getProvince() throws IOException {
        // provinces是一个List类型的集合
	provinces = registerService.getProvinces(countryId);
	
	StringBuilder sb = new StringBuilder();
	sb.append("<provinces>");
	if(provinces != null) {
		for(Iterator<Province> pros = provinces.iterator(); pros.hasNext();) {
			Province pro = pros.next();
			sb.append("<province><id>" + pro.getId() + "</id><name>" + pro.getName() + "</name></province>");
		}
	}
	sb.append("</provinces>");
	
	sendContent(sb.toString());
}

 

private void sendContent(String content) throws IOException {
	HttpServletResponse response = ServletActionContext.getResponse();
	response.setContentType("text/xml;charset=gbk");  
	response.setHeader("Cache-Control", "no-store");  //HTTP 1.1  
	response.setHeader("Pragma", "no-cache");  //HTTP 1.0  
	response.setDateHeader("Expires", 0);  //prevents caching at the proxy server  
	response.getWriter().write(content.toString()); 
}

 上面是返回XML,现在给出返回Json格式:

 

 

	/**
	 * 获取所有省份信息并返回给AJAX请求
	 * @throws Exception
	 */
	public void loadProvinces() throws Exception {
		List<Province> provinces = ajaxService.loadProvinces();
		
		JSONArray jsonArray = JSONArray.fromObject(provinces);
		System.out.println(jsonArray.toString());
		sendContent(jsonArray.toString());
	}
	
	/**
	 * 返回Json格式文件
	 * @param content
	 * @throws IOException
	 */
	private void sendContent(String content) throws IOException {
		HttpServletResponse resp = ServletActionContext.getResponse();
		resp.setContentType("application/json;charset=gbk");
		resp.setHeader("Cache-Control", "no-store");  //HTTP 1.1  
		resp.setHeader("Pragma", "no-cache");  //HTTP 1.0  
		resp.setDateHeader("Expires", 0);  //prevents caching at the proxy server  
		resp.getWriter().write(content.toString());
	}

 

 

分享到:
评论

相关推荐

    struts2ajax项目

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java ...通过这个项目,你可以学习到Struts2的Action配置、Ajax请求的发送与接收、以及前端和后端的数据处理。这将对理解和提升你的Java Web开发技能大有裨益。

    Ajax与Struts2异步请求数据

    这使得我们可以利用Struts2的特性来处理Ajax请求。 - **Struts2 JSON插件**:为了支持Ajax请求,我们需要引入`struts2-json-plugin-2.3.7.jar`。这个插件提供了JSON结果类型,使得Struts2可以返回JSON格式的数据,...

    ajax+servlet/struts/json

    Struts处理Ajax请求的方式多种多样,包括使用`@Action`注解指定Ajax动作,或者利用`struts.xml`配置文件定义特定的Ajax拦截器。Struts的Interceptor(拦截器)机制使得在Action执行前或后执行自定义逻辑成为可能,...

    jquery + struts1 + ajax学习例子

    例如,当你在前端使用jQuery监听用户事件,如表单提交,然后通过Ajax发送请求,Struts1的Action接收到请求后处理业务逻辑,最后Ajax回调函数根据服务器返回的数据更新页面。这样的流程避免了页面的完全刷新,提高了...

    struts-ajax.rar_ajax struts _struts ajax_struts ajax war

    开发者可以从中学到如何配置Struts的Action、Interceptor以及如何编写JavaScript代码来发送Ajax请求,以及如何在后台处理这些请求并返回响应数据。此外,通过分析项目中的JSP页面,还可以了解如何在页面上动态渲染从...

    Struts+ajax

    而使用Ajax,用户在提交表单时,可以通过JavaScript触发Ajax请求,将数据发送到服务器的Struts Action。Action处理完数据后,返回一个JSON或XML响应,JavaScript再将响应更新到页面的特定部分,而不是重新加载整个...

    struts+ajax分页程序

    在Struts中,XML常用于配置Action和Result,所以这个文件可能是Struts的配置文件,包含了Ajax请求的相关配置,比如Action类的映射和结果类型设置。 总结来说,"struts+ajax分页程序"是一个结合了Struts框架和Ajax...

    struts2ajax

    在"struts2ajax"这个主题中,我们主要探讨的是如何利用Struts2框架来处理Ajax请求并返回响应。以下是一些关键知识点: 1. **Struts2 Action和Result**:在Struts2中,Action是业务逻辑的载体,Result则是处理Action...

    struts-ajax.zip_ajax struts _javascript_struts ajax_struts-aj_ti

    3. 如何在Struts的Action中处理Ajax请求,以及返回JSON或XML格式的数据。 4. 在JSP页面中使用JavaScript或jQuery进行Ajax调用,以及处理返回的结果。 5. 如何设计和组织MVC架构,使得Struts和Ajax能够有效地协同工作...

    struts2的Ajax实现注册验证

    1. **Struts2配置**:首先,需要在`struts.xml`配置文件中定义一个Action,这个Action将处理Ajax请求。你需要设置一个特定的结果类型,比如`json`,这将使Struts2以JSON格式返回数据,非常适合Ajax调用。 2. **Ajax...

    struts2_ajax.rar_struts2 ajax

    在Struts2中,你需要创建一个处理Ajax请求的Action,然后在客户端使用JQuery的`$.ajax`或`$.get`、`$.post`等方法发送请求。服务器端Action处理完业务逻辑后,可以通过JSON或其他格式返回数据,客户端再根据返回的...

    Struts2 ajax json使用介绍

    在后端,我们需要创建一个Struts2 Action类,用于处理Ajax请求并返回JSON数据。例如,创建一个名为`AjaxAction.java`的类: ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2....

    Struts-Ajax整合案例

    (2) 创建Action:在Struts2中定义处理AJAX请求的Action,返回JSON或XML格式的数据。 (3) 配置Struts2:在struts.xml配置文件中添加对应的Action配置,指定返回类型为JSON或XML。 (4) 前端AJAX请求:使用JavaScript或...

    struts+ajax实例

    在J2EE开发中,Struts2框架和AJAX技术的结合使用能够提供更优秀的用户体验,特别是在处理表单验证和...对于初学者来说,这是一个很好的起点,可以帮助他们理解前后端交互的工作流程,以及如何在Struts2中处理AJAX请求。

    jQuery+Struts+Ajax无刷新分页

    - **控制器**:Struts2的Action类作为控制器,接收并处理来自前端Ajax请求,执行相应的业务逻辑。 - **模型**:Action类与后台数据库交互,查询数据并进行分页处理,然后将结果转换成JSON格式。 - **视图**:返回的...

    Struts与Ajax.rar

    在提供的PDF文档《Struts 2与AJAX(第一部分)、(第二部分)、(第三部分)》中,可能涵盖了如何配置Struts2框架以支持Ajax,以及如何在Action中处理Ajax请求,如何使用Ajax标签库创建Ajax请求,如何处理和展示Ajax...

    Ajax + struts 与 ajax 的 dwr 框架的使用

    - **创建Ajax Action**:在Struts配置文件(struts-config.xml)中,定义一个新的Action,用于处理Ajax请求。 - **使用Ajax标签库**:像DWR这样的框架提供了Ajax标签库,使得在JSP页面上直接调用Ajax请求变得简单。 ...

    Struts on Ajax-Retrofitting Struts with Ajax Taglibs

    S2JS允许开发者更方便地在Struts 2中使用Ajax技术,它提供了一种更为简洁的方式来处理Ajax请求,并且内置了对JSON的支持,使得数据传输更为高效。 #### 结论 通过使用Ajax Taglibs,我们可以在Struts应用程序中...

    struts2+jquery+ajax文件异步上传

    首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的请求处理和业务逻辑管理能力。在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的...

Global site tag (gtag.js) - Google Analytics