Spring 4 资源属性文件

Spring 4 resource properties file

MyClass

@Entity
@Table(name = "PIL_P_APPLCTN")
public class PIL_P_APPLCTN extends META_INF {

    @NotBlank
    @Column(unique = true, nullable = false, name = "APPLCTN_CD")
    private String APPLCTN_CD;

    @NotBlank
    @Column(nullable = false, name = "APPLCTN_ID")
    private String APPLCTN_ID;

    @NotBlank
    @Column(nullable = false, name = "APPLCTN_DS")
    private String APPLCTN_DS;

    @NotNull
    @Digits(integer = 20, fraction = 0)
    @Column(nullable = false, name = "DECLG_IDNTFNT_NU")
    private BigDecimal DECLG_IDNTFNT_NU;

}

messages.propertiessrc/main/resources

NotBlank.pil_p_applctn.APPLCTN_CD=Champ obligatoire !
NotBlank.pil_p_applctn.APPLCTN_ID=Champ obligatoire !
NotNull.pil_p_applctn.APPLCTN_DS=Champ obligatoire !
NotBlank.pil_p_applctn.DECLG_IDNTFNT_NU=Champ obligatoire !
Digits.pil_p_applctn.DECLG_IDNTFNT_NU=Seules les données numériques sont acceptées avec max 20 chiffres !
non.unique.APPLCTN_CD={0} existe déjà !
typeMismatch=Format invalide !

AppConfig.class

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.fussa.fyby")
public class AppConfig extends WebMvcConfigurerAdapter {



    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
@Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasename("messages");
        return messageSource;
    }
@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

}

当我尝试时

messageSource.setBasename("classpath:/messages");

messageSource.setBasename("classpath:messages");

此消息在控制台中显示:

WARN : org.springframework.context.support.ResourceBundleMessageSource - ResourceBundle [classpath:/messages] not found for MessageSource: Can't find bundle for base name classpath:/messages, locale fr_FR

所以我认为 messageSource.setBasename("messages"); 可以访问 messages.properties.. 但为什么在我的 jsp 文件中显示了默认消息而不是messages.properties !

中的那些

感谢您的任何建议..

由于您的语言环境是 fr_FR ,请将您的文件重命名为 messages_fr.properties 这将允许 spring 根据所选的显示语言选择正确的文件。

通过从 messages.properties 中删除一些自定义消息并将其添加到 我的实体

来解决问题
@Entity
@Table(name = "PIL_P_APPLCTN")
public class PIL_P_APPLCTN extends META_INF {
    @NotBlank(message="Champ obligatoire !")
    @Column(unique = true, nullable = false, name = "APPLCTN_CD")
    private String APPLCTN_CD;

    @NotBlank(message="Champ obligatoire !")
    @Column(nullable = false, name = "APPLCTN_ID")
    private String APPLCTN_ID;

    @NotBlank(message="Champ obligatoire !")
    @Column(nullable = false, name = "APPLCTN_DS")
    private String APPLCTN_DS;

    @NotNull(message="Champ obligatoire !")
    @Digits(integer = 20, fraction = 0,message="Max 20 chiffres !")
    @Column(nullable = false, name = "DECLG_IDNTFNT_NU")
    private BigDecimal DECLG_IDNTFNT_NU;

    public PIL_P_APPLCTN() {
    }}

messages.properties

non.unique.APPLCTN_CD=" {0} " existe déjà !
typeMismatch=Format invalide !