时间:2014-05-21 09:12:01

标签: spring spring-mvc spring-form

这可能是一个非常基本的问题,但我很困惑。我有几个疑问:

  1. 在弹簧形式<form:form中,如果未指定方法,那么它是GET还是POST?
  2. 如果弹簧形式的<form:form带有commandName,那么是GET还是POST?
  3. 第二个问题是因为我在代码中看到“form:form commandName = xyz action = abc” 当我检查HTML代码(查看源代码)时,它会转换为 “form action = abc method = POST”

    请帮我解决这个问题。

2 个答案:

答案 0 :(得分:4)

没有指定操作的HTML form始终是GET。这是HTML标准。 http://www.w3.org/TR/html401/interact/forms.html#h-17.3

但是当你在Spring源代码中查看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";

因此,对于spring标记<form:form,默认情况下会发布操作。

commandName只是与您的表单绑定的模型属性的名称。它没有任何方法类型。此外,它等同于modelAttribute,因此您可以使用其中任何一种。

答案 1 :(得分:0)

Spring表单的默认方法为POST。如果你想做get,你必须写,方法=&#34;得到&#34;形式:表格标签。