首页 > 代码库 > springmvc 整合jquery uploadify 火狐浏览器不兼容问题解决
springmvc 整合jquery uploadify 火狐浏览器不兼容问题解决
IE8下测试通过,测试告诉我在火狐浏览器中出现问题,打断点发现问题
1、不进入springmvc
解决办法是:;jsessionid=<%=sessionId%>
<%
String sessionId = request.getSession().getId();
%>
//上传处理程序url ‘uploader‘ : ‘${path}/bpmAttachController/fileUpload.do;jsessionid=<%=sessionId%>
2、进入springmvc的controller但是类里面需要调用session,此时后台报空指针异常
解决办法:
import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpSession;/** * 为解决uploadify在FireFox下上传文件时session丢失而设. * @author fangjian. * */public class MySessionContext { private static MySessionContext instance; private Map<String, HttpSession> mymap; private MySessionContext() { mymap = new HashMap<String, HttpSession>(); } public static MySessionContext getInstance() { if (instance == null) { instance = new MySessionContext(); } return instance; } public synchronized void AddSession(HttpSession session) { if (session != null) { mymap.put(session.getId(), session); } } public synchronized void DelSession(HttpSession session) { if (session != null) { mymap.remove(session.getId()); } } public synchronized HttpSession getSession(String session_id) { if (session_id == null) return null; return (HttpSession) mymap.get(session_id); }}
修改mvc,在进入页面前加一下一行
//进入页面之前先把session保存到map中
MySessionContext.getInstance().AddSession(request.getSession());
在接收文件上传的方法中得到session,不为空的
HttpSession session = null;String sessionid= (String) request.getParameter("jsessionid"); if (sessionid != null && !"".equals(sessionid)) { session = MySessionContext.getInstance().getSession(sessionid); }
这样就又得到session了,因为页面要传递参数"sessionid"
所以修改jsp的上传处理程序url
<%
String sessionId = request.getSession().getId();
%>
//上传处理程序url
‘uploader‘:‘${path}/bpmAttachController/fileUpload.do;jsessionid=<%=sessionId%>?taskId=${taskId}&defId=${defId}&jsessionid=<%=sessionId%>‘,
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。