栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么initbinder没有调用提交表单?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么initbinder没有调用提交表单?

应该使用此init-binder方法的命令/表单属性和/或请求参数的名称。

默认值是应用于由注释的处理程序类处理的所有命令/表单属性和所有请求参数。 在此指定模型属性名称或请求参数名称会将init-
binder方法限制为那些特定的属性/参数
,而通常将不同的init-binder方法应用于不同的属性或参数组。

以上是从的javadoc的

@InitBinder

在您的代码中,指定要使用的模型属性的名称,即

confermaDto
。但是,在您的请求处理方法中,没有模型属性的概念(即,没有使用注释
@ModelAttribute
)。

public String confermaDati(@Valid final ConfermaDatiAttrezzaturaDto confermaDto, final BindingResult bindingResult, final Model uiModel, final HttpServletRequest httpServletRequest) { ... }

你有一个注释参数与

@Valid
这只会触发验证,spring还会从请求实例化这个对象,并把值设置到它但它是
指定为一个模型属性。在
@Valid
注释旁边添加
@ModelAttribute
注释。(或从
@InitBinder
注释中删除名称,以便始终使用它)。

我认为这应该起作用,因为initbinder中的值和我的模型属性的名称相等。那为什么不起作用呢?

简而言之,要回答这个问题,方法参数名称是相等的,但是没有模型属性。因此,没有触发该

@InitBinder
方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号