如果我将表单元素集的action属性设置为“?”,这意味着什么?
在我的应用程序中,表单元素是:
<form action = "?" commandName="demoPageForm" method="POST">
.......
</form>
在控制器中我喜欢:
@RequestMapping(value = "/getDemoPage", method = RequestMethod.POST)
public ModelAndView setPartGross(
@ModelAttribute("demoPageForm") DemoPageForm emoPageForm,
BindingResult result) {
.......
return ... ;
}
此处控件转到此控制器方法。
怎么可能?
这背后的流程是什么以及该映射的原因是什么?
我正在使用玉兰花。
任何人都可以建议..?
答案 0 :(得分:1)
将表单操作设置为&#34;?&#34;将使它使用当前URL(您所在的页面),并附加一个查询字符串&#34;?&#34;到那个URL。因此,如果您使用http://example.com/getDemoPage,表单操作将为http://example.com/getDemoPage?这就是你的控制器响应的原因。
对于Spring MVC,您应该使用Spring的taglib <form:form...
来利用自动HTML转义(在web.xml中启用此功能)和CSRF令牌(如果使用Spring Security)。
您不需要在Spring taglib表单上设置操作,它始终是当前的URL。默认方法是POST,因此您也不需要设置它。不确定为什么你在常规HTML(非Spring)表单中有commandName
,因为它是一个Spring属性。