【问题标题】:What does InitBinder actually mean here?InitBinder 在这里的实际含义是什么?
【发布时间】:2015-02-21 21:23:51
【问题描述】:

Spring docs 这么说 InitBinder

标识初始化 WebDataBinder 的方法的注解 这将用于填充命令和表单对象参数 带注释的处理程序方法。

我从这个方法中得到的东西用于初始化用于填充模型对象的 WebDataBinder,以便 它可以在处理程序方法中进一步使用。但我不确定"... of annotated handler methods" 在这里是什么意思?”

更新:-我相信这意味着在通过 Sotirios Delimanolis 回答之后

InitBinder 注解标识初始化 WebDataBinder 的方法 这将用于模型对象,该对象将进一步传递给使用 @RequestMapping 注释的处理程序方法

【问题讨论】:

    标签: java spring-mvc


    【解决方案1】:

    处理程序方法通常用于区分 @Controller@RequestMapping 注释类型中的 methods annotated with @RequestMapping(请参阅 RequestMappingHandlerMapping)。

    例如,

    @RequestMapping("/example")
    public String setItemValue(@ModelAttribute Item item) {
        item.setValue(42);
        return "some-view";
    }
    

    @InitBinder 方法可用于帮助填充 WebDataBinder,这将创建要传递给 setItemValue 处理程序方法的参数。

    Here@ModelAttribute 的一些额外阅读。它不一定是必需的(只是明确的)。

    【讨论】:

    • 我相信您的意思是“@InitBinder 方法可用于帮助填充要传递给 populateItem 处理程序方法的参数。”正确的?如果是,是否必须使用 @ModelAttribute 注释该特定参数。我认为没有。
    • @user3198603 已编辑链接。
    • 感谢 sotirios。另请参阅我的更新。您的版本与我在编辑中提到的内容相同。谢谢
    • @user3198603 您还有其他问题或不清楚的地方吗?
    • 更快捷的事情是,InitBinder 方法将在每次调用带有 @RequestMapping 注释的处理程序方法之前调用。正确吗?
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2021-10-07
    • 2013-01-04
    • 1970-01-01
    • 2015-12-31
    • 2013-06-13
    • 2015-01-20
    • 2016-09-29
    相关资源
    最近更新 更多