spring mvc 转发 参数无法传递过去问题

探讨在SpringMVC项目中,转发时参数为何为空的问题。作者通过实例分析,发现参数名重复导致的覆盖问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际项目中碰到一个问题,spring mvc 转发的时候不论用哪种方式写,转发到的方法获取的参数总是空的

传参方法:

return new ModelAndView("forward:batGroup.do?gpId="+nbGroup.getGpId());

本想到在 “batGroup.do"方法接收到这个参数再进行处理。但目标方法一直为"" 

方法见下:

	@RequestMapping(value="/batGroup.do")
	public String batGroup(HttpServletRequest request,Model model){

		System.out.println("------batGroup-----gpId="+request.getParameter("gpId"));

		return "manage/gp_addupdate";
	}

起初并没有认真对待,以为可能是自己哪里失误或不规范引起的。但怎么都过不去。后来抽烟换换头脑想了想,request  进第一个方法的时候应该已经有这个参数了,值为"",而最后return 的时候添加的参数,被反优先到了后面,所以转发后并没有使用我后添加的参数而是还优先使用了request中的这个参数。

想到原因后,做了个测试,果然!看来基础还是不够扎实。有些浮躁。

下面放出问题原凶:

<form name="myform" id="myform"  action="<%=basePath %>manage/batGroupAddUpdate.do" method="post"  enctype="multipart/form-data">
            <input id="gpId" name="gpId" type="hidden" value="${gpinfo.gpId }"></input> 

第一次提交时,request 共享对象中是有这个参数的,转发添加的参数,名子一样也不会覆盖。

改参数名解决。有改request中参数方法,请大神留下在评论!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值