- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我扩展
public class RenamingProcessor extends ServletModelAttributeMethodProcessor {
@Override
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest nativeWebRequest) {
...
binder.getObjectName();
...
}
}
可以binder.getObjectName()
返回 null?
我尝试研究源代码,但在 javadoc 中没有找到此信息?
最佳答案
不,它不能返回 null(在这个声明中我假设 spring 框架没有损坏)。
首先,WebDataBinder 总是有一个值。看着ServletModelAttributeMethodProcessor implementation of bindRequestParameters他们按原样使用 WebDataBinder binder
:
ServletRequestDataBinder servletBinder = (ServletRequestDataBinder) binder;
//No null check between cast and usage
servletBinder.bind(servletRequest);
使用哪个构造函数来构建您收到的 WebDataBinder 并不重要。 WebDataBinder 上有 2 个可用:
1. public WebDataBinder(Object target);
2. public WebDataBinder(Object target, String objectName);
第二个显然会有一个 objectName - 从某种意义上说,我不相信任何在 spring 上工作的理智程序员会用 null 值调用它。
第一个调用 DataBinder constructor它使用 objectName ( public DataBinder(Object target, String objectName)) 调用构造函数,但默认 objectName 除外:
this(target, DEFAULT_OBJECT_NAME);
这是
public static final String DEFAULT_OBJECT_NAME = "target";
objectName 没有 setter 。一旦初始化,它将保持一个值。
旁注:如果绑定(bind)器仅用于转换普通参数值,则目标属性 (getTarget()
) 可以具有 null 值。不确定这个应用程序。
关于java - WebDataBinder#getObjectName() 可以返回 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33101031/
我正在尝试在 spring 的 MVC WebDataBinder 中注册自定义日期编辑器,以使 spring 解析我的自定义日期格式(准确地说,它是 ISO 格式)。我通过实现 CustomWebB
Spring数据绑定之DataBinder篇—01 WebDataBinder 上一篇我们对DataBinder的源码进行了详细的分析,下面我们对DataBinder的实现子类来做一下具体分析: 通过
我扩展 public class RenamingProcessor extends ServletModelAttributeMethodProcessor { @Override
我对扩展抽象 Controller 的现有 Controller 做了一些更改 public abstract class AbstractWizardController { private
我正在尝试将 Spring 验证与 swagger-codegen 生成的 Controller 接口(interface)一起使用。 swagger 代码生成为 Controller 提供了一个抽象
我编写了 WebDataBinder 的自定义实现。将来我想增强它,以便它在类本身上查找注释,并确定它是否应该将数据绑定(bind)到它。 如何将此类注入(inject)到 Spring 上下文中以代
我是一名优秀的程序员,十分优秀!