`
lhx222
  • 浏览: 73567 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Action中跳转后参数丢失

阅读更多
问题:在请求中传递的参数在Action中跳转后丢失,使用request.getParameter方法获取为null
错误原因:调试法相Action中跳转使用了ActionForward的setRedirect(true)导致;相关代码如下
…
String actType = request.getParameter("actType");
String url = "/module/tdac/common/redirect_fail_.jsp";
TdacUrlIndexVo vo = getTdacUrlIndexDao().loadRecord(" ACT_TYPE=" + actType.trim());
url = vo.getDeleteUrl().trim() + getQueryString(request);
ActionForward af = new ActionForward(url);
af.setRedirect(true); //注释掉此句后可以解决
return af;
…

/**
* 获得地址参数
* 
* @param request
* @return
*/
public String getQueryString(HttpServletRequest request) {
String result = "";
Enumeration parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
	String name = (String) parameterNames.nextElement();
	if (!name.equals("action")) {
		result += "&" + name + "=" + request.getParameter(name);
	}
}
return result;
}

解决方式:注释掉af.setRedirect(true);即可
小结:经过测试,返回前获取的url值包含了需要传递的值,但经过af.setRedirect(true);后,却无法获得(url的长度并没有超出限制),深入原因有待分析
分享到:
评论
3 楼 lhx222 2009-09-15  
zuhpj 写道
Redirect和Forward的差别吧。。。


也许是吧,但不是所有的参数都拿不到,只是一两个,其他的都可以,这些参数都不是session中的,都是通过参数传递过来的( + getQueryString(request))。

重定向 ( Redirect):
是路径的跳转,内容和 url都改变。不允许带 request参数( session参数可以),即不允许在 servlet里给 request对象使用setAttribute方法传给下一页面。在 servlet里使用 response.sendRedirect(url) 方法。这里的 url前不带斜线 /,如 response.sendRedirect(”test.jsp“)

url转发 ( Forward):
是页面的跳转,页面内容发生改变,url不变。可以带 request和 session参数。在 servlet里使用 getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。这里的 url前需要带斜线 /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)
2 楼 linenlin01 2009-09-14  
你还是将数据保存到session中吧。显示完毕,在JSP页面中清除
1 楼 zuhpj 2009-09-14  
Redirect和Forward的差别吧。。。

相关推荐

    action之间的跳转

    redirect-action 处理完后重定向到一个 action,请求参数全部丢失,action 处理结果也全部丢失。 Redirect-action 需要两次请求能完成的工作,请求转发只要通过一次请求即可完成。这样一来我们也就明白了为什么请求...

    redirect跳转

    在实际开发中,当你需要从一个action跳转到另一个action并携带参数时,有多种方式可供选择: - **使用`redirect`与URL参数**: 如`<result name="success" type="redirect">/displayCart.action?userId=${userId}...

    访问网站的参数传递代码

    在本案例中,我们将深入探讨如何在访问网站时进行参数传递,并保持在页面跳转后参数不丢失。 首先,我们要理解URL(统一资源定位符)结构。URL通常由协议、主机名、路径和查询字符串组成,其中查询字符串用于传递...

    jsp页面跳转

    - 数据丢失:由于是新请求,原始请求对象中的数据无法直接传递给目标资源。 - **应用场景**:适合于需要改变用户浏览器地址栏中的URL,或希望从一个请求跳转到另一个完全不同的请求时使用。 #### 三、客户端页面...

    12.鸿蒙HarmonyOS App(JAVA) page的隐式跳转demo.rar

    - 跳转过程中应处理好数据传递和生命周期管理,防止数据丢失或内存泄漏。 总结,"12.鸿蒙HarmonyOS App(JAVA) page的隐式跳转demo.rar" 提供了一个关于HarmonyOS中Java应用使用隐式跳转的实例,通过理解Intent过滤...

    ASP.NET页面传递参数

    ASP.NET页面传递参数是Web开发中的重要环节,它涉及到页面间的通信和数据交换。下面将对标题和描述中提到的知识点进行详细说明。 1. **Get(QueryString)**: - **方式**:通过URL后面的查询字符串传递参数。 - ...

    vuex中的store

    8. **HMR(热模块替换)**:Vuex 支持 Hot Module Replacement,在开发过程中,我们修改了 Store 中的状态或模块,浏览器会自动刷新,而不会丢失当前状态,提高了开发效率。 9. **生命周期和组件通信**:在 Vue ...

    Struts2输入校验总结

    为了使`prepare()`方法能获取到表单提交的参数,需要在Action配置中添加`<interceptor-ref name="paramsPrepareParamsStack"/>`。 6. **表单提交与显示错误**:在JSP页面中,使用Struts2标签库如`<s:form>`和`...

    ecshop整合返利网CPS接口文档(全)

    - 实现订单数据传输时要注意参数格式的准确性,避免数据丢失或错误。 - 定期检查系统运行情况,确保接口稳定可靠。 综上所述,ecshop整合返利网CPS接口不仅有助于提升用户体验,还能有效提高业务效率,对于希望构建...

    ASP.NET实现页面间值传递的几种方法

    在ASP.NET MVC中,可以通过自定义路由规则来传递额外的参数,这些参数可以在控制器的Action方法中获取。 10. **PostBackUrl属性** PostBackUrl属性可以在控件(如Button)上设置,使得点击后直接跳转到指定URL,...

    Struts+Hibernate分页

    6. **Action类处理请求**:在Struts的Action类中,根据用户的请求参数(如当前页码)调用DAO的分页查询方法,并将结果封装到Page对象中。然后,将Page对象设置为Action的属性,以便在视图层进行渲染。 7. **视图...

    ASP.NET页面之间数据传递的几种方法

    在发送页面中,可以通过`Request.Redirect()`或`Response.Redirect()`方法附带查询字符串参数,如`Request.Redirect("Default2.aspx?username=honge")`。接收页面则可通过`Request.QueryString`集合获取这些参数。...

    西门子专业词汇中英文对照表

    实际值监视是指持续监测系统中各个参数的实际值,并与设定值进行比较的过程。这种监视有助于及时发现偏差,并采取必要的纠正措施。 #### actuating signal(起动信号) 起动信号是指触发某个设备或系统开始工作的...

    ssh框架实现javaweb支付宝例子

    在支付宝的例子中,Struts2会解析用户提交的支付请求,转发到相应的Action,然后调用Spring管理的支付服务进行业务处理。同时,Struts2还可以用于构建支付结果的反馈视图,向用户展示支付状态。 **Hibernate框架**...

    防uc滑动功能

    - 用户体验:防UC滑动功能可以提高用户体验,特别是在需要精细操作的应用中,如阅读、绘图或游戏等,用户不必担心不小心滑动导致页面跳转。 - 内容保护:在查看敏感信息或完成关键任务时,防止意外滑动可以确保用户...

    在Vue中使用this.$store或者是$route一直报错的解决

    接着,确认组件方法中this的上下文环境是否正确,避免使用不恰当的函数表达式造成上下文丢失。最后,要善于利用官方文档,通过阅读API的详细说明来帮助理解问题和寻找解决办法。只有通过不断地学习和实践,才能有效...

    jsp ${param.id}用法

    - 重定向:客户端地址栏中的URL会发生变化,需要重新发送HTTP请求,可能会丢失请求参数。 2. **EL表达式与Java代码结合使用**: - 在复杂的业务逻辑处理中,建议将数据处理放在Java后端代码中,通过`setAttribute`...

    php 修改zen-cart下单和付款流程以防止漏单

    这种修改后的流程可以提高Zen-Cart系统的健壮性,避免由于网络或其他技术问题导致的订单丢失。同时,它也为用户提供了一种更灵活的支付体验,允许他们在方便时完成支付。在实施这些改动时,务必备份原有代码,并确保...

    J2EE面试题

    第二次请求是独立的,会丢失第一次请求中的属性和参数。 **5. Web容器的概念** Web容器是实现J2EE规范中Web层协议的软件环境,主要负责管理Web组件(如Servlets和JSPs)的生命周期、并发控制、安全性以及与Web...

Global site tag (gtag.js) - Google Analytics