struts2下利用jquery、ajaxfileupload实现无刷新上传文件

要想在struts下实现无刷新上传文件,有很多种方式,但我这里用的是ajaxfileupload这个js库,感觉还比较好用,建议从ajaxfileupload官网下载它的包,里面有比较完整的例子,不过是php的,如果是jsp开发,可以参考我的代码,好了,废话不多说,直接上代码(什么struts配置我就不啰嗦了,直接附上上传相关的代码)

需要的东西:struts2-json-plugin-2.2.1.jar、jquery.js和ajaxfileupload.js(附件可下载)

上传文件的fileUpload.jsp

<%@ page language="java" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
	Excel导入
	
    
    
    
    
    
    
	
	
	
  
  
  
  
  
数据导入
为减少错误,请在导入数据前下载最新Excel模板!
说明
1、淡黄色代表该字段(必填)
2、淡橙色代表该字段有代码表(必填)
3、淡绿色代表该字段有代码表(选填)

 Excel_OperationAction部分处理方法

// 模块导入-wms
	public void importExcelWms() {
		JSONObject jsonObj = new JSONObject();
		String module_number = getRequest().getParameter("module_number");
		String right = getRequest().getParameter("right");
		HttpSession session = getRequest().getSession(false);
		UserDto userDto = (UserDto) session.getAttribute("USER_INFO");
		
		String table_dm = new ExcelReader().findName("table_dm",module_number);;
		String view_dm = module_number;
		String mk_dm = module_number;
		InputStream is = null;
		if (file == null) {
			jsonObj.put("message", "没有选择文件,请选择要导入的文件!");
			write(jsonObj.toString());
			return ;
			
		}
		try {
			
			 is = new BufferedInputStream(new FileInputStream(file));
		} catch (FileNotFoundException e) {

			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		String msg = new String();
		
		if (!Utils.isValidString(table_dm) || !Utils.isValidString(view_dm) || !Utils.isValidString(mk_dm)) {
			jsonObj.put("message", "模块信息有误,请重新导入(如果多次不成功,请与管理员联系)!");
			write(jsonObj.toString());
			return ;
		} else {
			msg = new ExcelReader().excelImportWms(table_dm, view_dm, mk_dm, is,userDto);
		}

		try {
			if (is != null) {
				is.close();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		jsonObj.put("message", msg);
		write(jsonObj.toString());
		return ;
 	}

 write方法:

/**
	 * 功能描述:页面输出
	 * 
	 * @param content
	 *            输出的内容
	 */
	protected void write(String content) {
		if (content != null) {
			HttpServletResponse response = getResponse();
			response.setContentType("text/html");
			response.setCharacterEncoding("UTF-8");
			try {
				response.getWriter().println(content);
				response.getWriter().flush();
				response.getWriter().close();
			} catch (IOException e) {
			}
		}
	}

 

 

 有一个需要注意的地方:到底后台的值怎么传到前台去呢,最好的方法就是通过json传值。

需要的js及jar文件附件里有

你可能感兴趣的:(java,javascript,SSH)