这可能是一个非常基本的问题,但我很困惑。我有几个疑问:
<form:form
中,如果未指定方法,那么它是GET还是POST?<form:form
带有commandName,那么是GET还是POST?第二个问题是因为我在代码中看到“form:form commandName = xyz action = abc” 当我检查HTML代码(查看源代码)时,它会转换为 “form action = abc method = POST”
请帮我解决这个问题。
答案 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;形式:表格标签。