最近刚用jquery mobile,遇到servlet里所有需要传递的值 request.setAttribute("x",xx) 在jquery mobile里全都成空值了。这是什么原因?具体点如下:
1: <a href="/Servlet" data-ajax="false" >进入页面</a>
2:进入servlet 在里面转悠了一圈后,request.setAttribute("name","haojia") ; response.sendRedirect("XXXXXXXX.jsp")
3:这个xxxxxxxxxxx.jsp是jquery mobile的,我里面显示 name时用过1 :name=#{name} 空值 2:name=<%=request.getAttribute("name")%>也是空值。
如果 session.setAttibute(""name","haojia") 到这个xxxxxx.jsp里 <%=request.getAttribute("name")%>就有值了。我这是举个简单的例子,不是登陆系统,所以不能总用session保存值。
那么:jquery mobile到底他妈的把我request弄哪去了?这个SB。求高手帮忙解决一下。
顺便说一句,我这做的不是APP,就是一个网站,好让他在手机上能正确显示。
------解决方案--------------------
重定向不共享 request,参数被你弄丢失了
这个跟 jQuery 没关系
------解决方案--------------------
sendRedirect 302 request是另一个实例。
------解决方案--------------------
request.getRequestDispatcher("/...").forward(request,response);
这个分发request请求可以传递request实例
String name = "";
Object nameObj = request.getAttribute("name");
if(null != nameObj && nameObj.instanceOf String){
name = (String)nameObj;
}
response.sendRedirect("..../.....do?name="+name)