Java SpringMVC数据绑定

Java SpringMVC数据绑定,java,spring,spring-mvc,spring-roo,Java,Spring,Spring Mvc,Spring Roo,我有一个非常奇怪的错误,我设法改正了,但我不明白为什么它一开始就出现了 我有一个Spring MVC应用程序,它包含许多不同的类,这些类都是由Spring Roo构建的,比如:AuthenticationConfig、ConnectorConfig等。搭建之后,我将所有代码从AJ推送到java,所有代码都运行良好,我对其进行了修改以满足我的需要 但是有一天,我决定重构其中的一些类(因为它们有很多共同点),绑定崩溃了 我开始收到绑定错误: Failed to convert property va

我有一个非常奇怪的错误,我设法改正了,但我不明白为什么它一开始就出现了

我有一个Spring MVC应用程序,它包含许多不同的类,这些类都是由Spring Roo构建的,比如:AuthenticationConfig、ConnectorConfig等。搭建之后,我将所有代码从AJ推送到java,所有代码都运行良好,我对其进行了修改以满足我的需要

但是有一天,我决定重构其中的一些类(因为它们有很多共同点),绑定崩溃了

我开始收到绑定错误:

Failed to convert property value of type 'java.lang.String' to required type 'com.mypackage.GeneralConfig'.
在我将字符串注册到FormattingConversionServiceFactoryBean中的GeneralConfig转换器后,错误消失了(它已经有了GeneralConfig到字符串转换器),但我不明白为什么以前一切都正常。我所做的一切都是删除了不必要的配置类,并将它们替换为一个通用类,如下所示:

@ManyToOne
private ConnectorConfig connector;

@ManyToOne
private XUIDMapperConfig xuidMapper;

@ManyToOne
private AuthenticationTokenConfig authenticationToken;


也许我在重构过程中遗漏了一些重要的东西?

检查应用程序转换服务AcotryBean

Roo应该在“web”或“controller”包中创建该类,以及您应该内联的ApplicationConversionServiceFactoryBean\u Roo\u ConversionService.aj。也许你在内联时错过了那个课程

对于面临该问题的其他人,请确保您具备以下条件:

public Converter<String, GeneralConfig> getStringToGeneralConfigConverter() {
    return new org.springframework.core.convert.converter.Converter<java.lang.String, GeneralConfig>() {
        public GeneralConfig convert(String id) {
            return getObject().convert(getObject().convert(id, Long.class), GeneralConfig.class);
        }
    };
}

检查应用程序转换服务AcotryBean

Roo应该在“web”或“controller”包中创建该类,以及您应该内联的ApplicationConversionServiceFactoryBean\u Roo\u ConversionService.aj。也许你在内联时错过了那个课程

对于面临该问题的其他人,请确保您具备以下条件:

public Converter<String, GeneralConfig> getStringToGeneralConfigConverter() {
    return new org.springframework.core.convert.converter.Converter<java.lang.String, GeneralConfig>() {
        public GeneralConfig convert(String id) {
            return getObject().convert(getObject().convert(id, Long.class), GeneralConfig.class);
        }
    };
}

这些错误可能是在启动服务器后出现的,对吗?检查数据库中可能导致这些错误的旧数据。如果是,请从数据库中删除它们,然后重试。:)这些错误可能是在启动服务器后出现的,对吗?检查数据库中可能导致这些错误的旧数据。如果是,请从数据库中删除它们,然后重试。:)
public void installLabelConverters(FormatterRegistry registry) {
    ...
    registry.addConverter(getStringToConfigurationConverter());
    ...
}