【问题标题】:Form- Action Attribute value表单-动作属性值
【发布时间】:2015-03-19 04:12:07
【问题描述】:

如果我将表单元素的action属性设置为“?”是什么意思? ?

在我的应用程序中,表单元素是:

 <form action = "?" commandName="demoPageForm" method="POST">
 .......
 </form>

在控制器中我有这样的:

   @RequestMapping(value = "/getDemoPage", method = RequestMethod.POST)
   public ModelAndView setPartGross(

   @ModelAttribute("demoPageForm") DemoPageForm emoPageForm,       

    BindingResult result) {

     .......

     return ... ;

  }

这里控制转到这个控制器方法。

  • 怎么可能?

  • 这背后的流程是什么?是什么负责这个映射?

    我用的是玉兰花。

    任何人都可以建议..?

【问题讨论】:

    标签: spring-mvc magnolia


    【解决方案1】:

    将表单操作设置为“?”将使其使用当前 URL(您所在页面的),并附加一个查询字符串“?”到那个网址。因此,如果您在 http://example.com/getDemoPage 上,表单操作将是 http://example.com/getDemoPage?这就是您的控制器响应的原因。

    对于 Spring MVC,如果使用 Spring Security,您应该使用 Spring 的 taglib &lt;form:form... 来利用自动 HTML 转义(在 web.xml 中启用)和 CSRF 令牌。

    您不需要在 Spring taglib 表单上设置操作,它始终是当前 URL。默认方法是 POST,因此您也不需要设置它。不知道为什么您在常规 HTML(非 Spring)表单中有 commandName,因为那是 Spring 属性。

    【讨论】:

    • 对不起,这是一个弹簧形式,我只是错过了编写语法。
    • commandName 将其与您的模型联系起来,请参阅代码中的 ModelAttribute 注释。
    • @Jan 当然。但它是 form:form 的属性,而不是 form
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多