我有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