2017-10-23 18 views
0

は基本的に私は、プロパティファイル内の設定使用プロパティ値目:条件

data.enabled = true 

を持っていると私はその

@Configuration 
@PropertySource(value = {"classpath:dataconfig.properties"}) 
public class DataProperties { 
    private Boolean enabled; 
} 

のためのPOJOクラスを追加していると私はEnabledプロパティを確認する場合thymeleafを使ったhtmlタグで

<li th:if="${DataProperties.getEnabled() == true}" ><h3>Hello</h3></li> 
+0

エラーは何ですか? –

+0

私は有効なプロパティのヌルを取得しています – boycod3

+0

コントローラコードを表示してください...または少なくともモデルをどのように設定しますか。 – mrkernelpanic

答えて

2

まず、コンフィギュレーションクラスに@ConfigurationProperties(prefix="data")を追加する必要があります。

@Configuration 
@PropertySource("classpath:dataconfig.properties") 
@ConfigurationProperties(prefix="data") 
public class DataProperties { 
    private Boolean enabled; 

これはあなたの変数は直接@Value注釈を使用せずにプロパティの値にバインドされていることを活性化。あなたのプロパティファイルにはdata.enabledがあります。つまり、接頭辞はdataです。あなたもこれを設定しなければなりません。

thymeleafでBeanを直接使用するには、特別なコマンドを使用する必要があります。あなたのケースでは、それはそれのようになります(see point 5 in the docs

<li th:if="${@dataProperties.getEnabled() == true}" ><h3>Hello</h3></li> 

追加1:

あなたDataProperties

@Controller 
public class IndexController { 

    @Autowired 
    private DataProperties dataProperties; 

    @GetMapping("/") 
    public String index() { 
     dataProperties.getEnabled(); 
     return "index"; 
    } 

をautowireする必要がコントローラのような他のSpring Beanで同じプロパティを使用するには言及すると、それはフィールド上のautowireは悪い習慣です。しかし、そのようなものを使用するか、コンストラクタまたはセッターにautowireを使用するかはあなたの選択です。

+0

と私はどのようにコントローラで同じプロパティを使用できますか? – boycod3

+0

@ boycod3が私の答えを追加しました。あなたが要求したことを望みます – Patrick

+0

はいそれは動作します..... – boycod3

関連する問題