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的长度并没有超出限制),深入原因有待分析
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值