问题:在请求中传递的参数在Action中跳转后丢失,使用request.getParameter方法获取为null
错误原因:调试法相Action中跳转使用了ActionForward的setRedirect(true)导致;相关代码如下
解决方式:注释掉af.setRedirect(true);即可
小结:经过测试,返回前获取的url值包含了需要传递的值,但经过af.setRedirect(true);后,却无法获得(url的长度并没有超出限制),深入原因有待分析
错误原因:调试法相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的长度并没有超出限制),深入原因有待分析
本文探讨了在使用ActionForward进行重定向时参数丢失的问题。通过调试发现,当设置了setRedirect(true)后,原本应该传递的参数变得无法获取。解决办法是注释掉setRedirect(true),确保参数正常传递。
1418

被折叠的 条评论
为什么被折叠?



