2014-05-21 70 views
1

這可能是一個非常基本的問題,但我很困惑。我有幾個疑問:<form:form有方法GET或POST

  1. 在春天的形式<form:form如果方法沒有指定,那麼它是GET或POST?
  2. 如果一個彈簧窗體有<form:form with commandName,那麼是GET還是POST?

第二個問題是,因爲我看到:在代碼 「形式形式的CommandName = XYZ動作= ABC」當我檢查HTML代碼(查看源)將其轉換爲 「表單動作= ABC法= POST「

請幫我這個。

+1

@ sp00m一個普通的HTML表單總是默認爲GET。 – Runcorn

+0

感謝您的回覆。但對於HTML表單,默認是POST。那麼Spring的默認POST的還是由於CommandName? – user1630693

+0

@ user1630693它得到,和春天是一樣的 – NimChimpsky

回答

3

未指定動作的HTML form始終爲GET。這是HTML標準。 http://www.w3.org/TR/html401/interact/forms.html#h-17.3

但是,當你在春源往裏FormTag,你會發現這樣的代碼:

public class FormTag extends AbstractHtmlElementTag { 

/** The default HTTP method using which form values are sent to the server: "post" */ 
private static final String DEFAULT_METHOD = "post"; 

所以春天標籤<form:form動作後默認。

commandName只是模型屬性名稱綁定您的表單。它沒有任何方法類型。此外,它相當於modelAttribute,所以你可以使用。

+0

好吧,然後我沒有得到,爲什麼我在我的HTML代碼中獲得method =「POST」。 – user1630693

+0

我的不好,我檢查了Spring的源碼,看到編輯答案 – kamil

+0

感謝您的幫助! – user1630693

0

Spring窗體的默認方法是POST。如果你想得到get,你必須在form:form標籤中寫入method =「get」。