`
海上明月共潮生--风铃
  • 浏览: 59775 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

ajax struts2 action 页面无刷新返回结果

    博客分类:
  • java
阅读更多

 

最近做项目遇到的问题 用form提交 返回页面要不 跳转 要不刷新 可是我不想刷新页面

之前想用ajax 纠结了很久 发现ajax提交文件 action根本接收不到。
网上搜了些资料总结了一个最简单的方法分享一下:

 

html:

 

 

<form action=""   name="upfile_form" encType="multipart/form-data"   method="post" >  
 <input type="text" name="fileName" />
    <input type="file" name="upload" id="upload_file" onchange="checkFileSize('upfile_form','check_file_frame','/项目名/pack/fileupload.action',this);" />
  <p>
   <input type="submit" value="submit" />
  </p>
  <iframe name="check_file_frame" src="successful.jsp"></iframe>
</form>

 

 

 js:

 

 

/**
 * checkFileSize 可以实现异步提交 不刷新页面
 * @param formName  表单名 String
 * @param targetIframeName 返回页面的iframe框 String
 * @param actionName  action路径 完整的 String
 * @param fileObj 当前文件 一般写为:this
 * @return
 */
function checkFileSize(formName,targetIframeName,actionName,fileObj) {	
  var fileForm = new Object();
  if(fileObj.value != "") {
    var form = document.forms[formName];
    //把form的原始数据缓存起来
    fileForm.f = form;
    fileForm.a = form.getAttribute("action");  //form.action 为一个静态的对象,所以这里要使用getAttribute方法取值
    fileForm.t = form.target;
    //请求服务器端
    form.target = targetIframeName;
    form.action = actionName;         
    form.submit();// 其实上面的action已经会执行submit操作,这步可有可无
  }
  return false;
}

 

 




struts.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts> 
  <package name="pack" namespace="/pack" extends="struts-default"> 
    <action name="fileupload" class="pack.Fileupload" method="execute"> 
      <result>successful.jsp</result> 
    </action>
    
  </package> 
</struts>

  

Fileupload.java

 

import java.io.File;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Fileupload extends ActionSupport {
	private File upload;
	// 执行Action的Method功能
    private String  fileName; // 上传文件的文件名    
    private String  attachmentContentType;  // 上传文件的类型    
   

	public File getUpload() {
		return upload;
	}


	public void setUpload(File upload) {
		this.upload = upload;
	}


 


	public String getFileName() {
		return fileName;
	}


	public void setFileName(String fileName) {
		this.fileName = fileName;
	}


	public String getAttachmentContentType() {
		return attachmentContentType;
	}


	public void setAttachmentContentType(String attachmentContentType) {
		this.attachmentContentType = attachmentContentType;
	}


    public String execute() throws Exception    {
    	    System.out.println(fileName);
    		String dataDir = "e:\\file";// 上传文件存放的目录   
    		File savedFile = new File(dataDir, fileName);// 上传文件在服务器具体的位置            
    		upload.renameTo(savedFile);// 将上传文件从临时文件复制到指定文件        
    	   
    		
    		HttpServletRequest request = ServletActionContext.getRequest();
      		request.setAttribute("a", "aa");
    		request.setAttribute("b", "bb");   		
    		return SUCCESS;  
    	}
}

 

 这里只是简单地实现功能。successful.jsp可以通过parent.函数名 调用父类函数实现函数回调 轻松控制两个页面。



因为是调用函数 所以不用提交按钮也可以 这样就实现了不用刷新页面。

分享到:
评论

相关推荐

    ajax struts 无刷新访问后台返回json数据

    **Ajax Struts 无刷新访问后台返回JSON数据详解** 在Web开发中,为了提供更流畅、高效的用户体验,无刷新(Ajax)技术被广泛应用于页面更新。结合Struts框架,我们可以实现后端服务与前端交互,返回JSON数据,使得...

    struts2+jquery无刷新取后台数据

    在这里,"struts2+jquery无刷新取后台数据"的实现主要是利用Ajax技术,结合Struts2的Action和Result,实现在用户界面上的无刷新交互。 首先,登录功能是Web应用的基础。在Struts2中,我们可以创建一个登录Action类...

    struts2ajax项目

    你需要创建一个Action类,并在其中定义执行方法,这些方法通常会返回一个结果名称,该名称对应一个JSP页面或者一个Struts2拦截器链。 接着,我们来看Ajax的实现。在jQuery中,`$.ajax()`方法是核心,它可以发起异步...

    ajax+struts2无刷新取后台

    在IT行业中,Ajax(Asynchronous JavaScript and XML)与Struts2框架的结合使用,是实现Web应用程序无刷新交互的关键技术。这种技术允许用户在不重新加载整个网页的情况下,与服务器交换数据并局部更新页面,极大地...

    Struts2+Jquery+Ajax

    在Struts2中,Jquery可以与Ajax结合使用,实现页面的无刷新更新。 Ajax(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,无需整个页面刷新,提高了用户体验。在Struts2框架下,我们可以使用...

    ajax_struts2_上传与下载_无刷新

    3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....

    jQuery+Struts+Ajax无刷新分页

    **jQuery+Struts+Ajax无...总结,这个"jQuery+Struts2+Ajax无刷新分页"项目展示了如何结合现代前端技术和后端框架实现高效、友好的Web应用。通过学习和实践,开发者可以更好地理解和掌握这些技术在实际项目中的应用。

    ajax-struts2需要的3个包

    Struts2 JSON插件增强了框架处理JSON请求和响应的能力,使得开发者能够方便地将Action的结果以JSON格式输出,供Ajax调用。通过这个插件,你可以配置Struts2的动作类,使其能够直接返回JSON对象,而无需额外的视图层...

    Struts2+ajax+json返回list.docx

    总结,Struts2、Ajax和JSON的组合使用使得前端能够动态地从服务器获取数据并更新页面,而无需刷新整个页面。这提高了应用的性能和用户体验。在实际项目中,这种技术常用于表格数据的动态加载、表单验证等场景。同时...

    Struts 2及AJAX框架的详细介绍

    5. **实战示例**:提供了一些实际的开发案例,如创建一个简单的Struts 2项目,添加AJAX功能,实现无刷新的用户交互。 6. **错误处理和调试**:如何处理Struts 2中的异常,以及调试技巧和工具。 学习Struts 2和AJAX...

    Struts2 Jquery 实现Ajax无刷新验证用户名是否存在

    - 使用jQuery的`$.ajax()`或`$.getJSON()`方法发送异步请求,参数包括URL(指向Struts2 Action)、数据(通常是用户名)、回调函数等。 2. **Struts2 Action配置**: - 创建一个Struts2 Action类,比如`...

    struts2的Ajax实现注册验证

    确保这个插件已添加到项目的类路径中,它能帮助Struts2更方便地处理JSON数据,并将其作为Action结果返回。 7. **安全考虑**:在实际应用中,需要考虑防止SQL注入、跨站脚本攻击等安全问题。对输入进行适当的验证和...

    AJAX和struts2传递JSON数组

    这告诉Struts2框架当收到名为`struts2Action`的请求时,使用`Struts2Action`类,并返回JSON格式的结果。如果需要在Action执行后返回一个页面,可以将`result`元素的类型改为`dispatcher`。 总结来说,通过这种方式...

    Struts2 ajax json使用介绍

    `@Action`注解定义了Action的URL,`@Result`注解设置了结果类型为`json`,这使得Struts2会自动将Action的属性转换为JSON格式并返回。 **四、Struts配置** 最后,我们需要在`struts.xml`配置文件中声明我们的Action...

    struts2+ajax实现无刷新登录

    在这个"struts2+ajax实现无刷新登录"的项目中,我们首先会涉及到Struts2的基本配置。在Struts2中,你需要创建一个配置文件(如struts.xml),在这里定义Action类以及它们与URL的映射关系。Action类是处理用户请求的...

    Struts2无刷新实现登陆退出

    在这个项目中,"Struts2无刷新实现登陆退出"是通过整合Struts2框架、JavaScript库如jQuery和Ajax技术,以及OGNL(Object-Graph Navigation Language)表达式来实现的一种优化用户体验的登录和退出功能。 首先,让...

    struts2对AJAX的支持

    在Web开发中,AJAX技术允许页面在不刷新整个页面的情况下与服务器进行异步通信,提升了用户体验。Struts2通过集成jQuery插件和其他库,使得在基于Struts2的应用中集成AJAX变得简单易行。 首先,我们来理解一下...

    Struts2+jQuery(不用JSON)实现局部刷新

    在这个“Struts2+jQuery实现局部刷新”的主题中,我们将探讨如何利用这两者的优势来实现页面的无刷新更新。 1. **Struts2框架介绍**: Struts2是一个基于MVC设计模式的Java Web框架,它提供了良好的结构和可扩展性...

    Struts2与AJAX

    客户端的JavaScript可以使用XMLHttpRequest或jQuery等库发送AJAX请求,获取JSON数据,然后动态更新页面内容,实现无刷新的交互效果。 总结来说,Struts2通过与AJAX的整合以及JSON插件的使用,极大地提升了Web应用的...

    struts2 jqurey ajax简单实例

    Ajax请求的目标通常是Struts2的Action,Action会执行相应的业务逻辑,并返回结果。 在描述中提到的"简单的struts2中应用jquery ajax小例子",可能包含以下几个步骤: 1. **配置Struts2**:首先,你需要在`struts....

Global site tag (gtag.js) - Google Analytics