【问题标题】:Spring 4 resource properties fileSpring 4 资源属性文件
【发布时间】:2016-09-25 14:09:31
【问题描述】:

我的班级

@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");

此消息显示在控制台中:

警告:org.springframework.context.support.ResourceBundleMessageSource - 找不到 MessageSource 的 ResourceBundle [classpath:/messages]:找不到基本名称类路径的捆绑包:/messages,区域设置 fr_FR

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

感谢您的任何建议..

【问题讨论】:

  • 做一个“测试日志”,设置一个消息条目并使用<spring:message code="label.test.message" />查看资源是否加载

标签: spring-mvc properties-file


【解决方案1】:

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

【讨论】:

  • @FuSsA 确保你使用这个classpath:messages
  • 如果我这样做..我收到了这个警告:org.springframework.context.support.ResourceBundleMessageSource - ResourceBundle [classpath:/messages] not found for MessageSource: Can't find bundle for base name classpath :/messages, 语言环境 fr_FR
【解决方案2】:

通过从 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 !

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多