gpt4 book ai didi

java - Spring MVC 忽略配置的 PropertyEditor 并使用构造函数代替

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:47 28 4
gpt4 key购买 nike

使用 Spring 3.1 并给出这种东西:

class Thing {
public Thing() {}
public Thing(String someProperty) {}
}

class ThingEditor extends PropertyEditorSupport{
@Override
public void setAsText(String text) {
if (text != null) {
Thing thing = new Thing(text); // or by using a setter method
setValue(thing);

}

}
}

class SomeController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Thing.class, new ThingEditor());
}
}

我发现注册的属性编辑器没有被调用,除非我删除了在 Thing 中接受 String 的构造函数 - 这样对吗?

为什么它会这样做并忽略已注册的编辑器,我怎样才能让它停止这样做?

最佳答案

通过引入您自己的构造函数,您可以禁用编译器生成的默认构造函数。框架可能需要默认构造函数才能实例化您的事物。如果你真的需要自己的构造函数,你也可以提供一个没有任何参数的版本供框架使用。

关于java - Spring MVC 忽略配置的 PropertyEditor 并使用构造函数代替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294966/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com