我有jsp,其方法action =“POST”。 最初,这个jsp通过一个控制器(Spring)调用,URL中的查询字符串param1 = paramValue1。 (例如/thisJsp.jsp?param1=paramValue1)。 Spring在这里使用了GET方法,所以查询参数被读取。POST方法读取查询参数而不是表单字段
后来我会通过javascript设置一个隐藏的表单输入字段$('#param1')。val(paramValue2)来提交()。
我的问题是回到控制器,它注册的方法操作是POST,但当我做request.getParameter(“param1”)时,它会始终返回paramValue1。
使用Fiddler,我看到param1 = paramValue2被注册,意味着它在submit()上设置。
我错过了什么?
我使用Tomcat服务器和Spring 2.0.7
from控制器:request.getMethod()反映POST和request.getParameterValues返回项目[0] = paramValue1 [1] = paramValue2 ...但为什么POST仍然返回[0]项目? – user1346699 2012-08-14 20:39:54
因为您使用包含param1 = paramValue1的查询字符串发布URL。所以param被指定了两次:一次在查询字符串中,一次在post主体中。服务器读取这两个值。将表单的“action”属性设置为控制器的URL,而不需要任何查询字符串,并且应该全部设置。 – jfrank 2012-08-14 21:32:04
感谢jfrank。设置“动作”属性解决了它。 – user1346699 2012-08-15 14:30:03