在Spring启动时,从javascript如何访问application.properties中定义的变量?

时间:2017-04-25 10:14:07

标签: spring-boot freemarker

我是Spring的新用户,假设我在application.properties中定义了变量VAR:

application.properties

VAR=foo

我有一个像这样的freemarker文件:

index.ftl

<script type="text/javascript">
 console.log("VAR is: " ??? ) // How to access VAR?
</script>

2 个答案:

答案 0 :(得分:1)

您可以使用Freemarker共享变量:

@Configuration
public class FreemarkerConfiguration extends FreeMarkerAutoConfiguration.FreeMarkerWebConfiguration {

        @Value("${VAR}")
        private String myProp;

        @Override
        public FreeMarkerConfigurer freeMarkerConfigurer() {
            FreeMarkerConfigurer configurer = super.freeMarkerConfigurer();

            Map<String, Object> sharedVariables = new HashMap<>();
            sharedVariables.put("myProp", myProp);
            configurer.setFreemarkerVariables(sharedVariables);

            return configurer;
        }
    }

在前端 - &gt;

<script type="text/javascript">
var myvariable = "${myProp}";
function myfunction(){
    alert(myProp);
}
</script>

或者你可以根据Paul Vlasin的建议,进行api调用以从服务器端获取属性值。

答案 1 :(得分:0)

您需要通过API调用公开该变量,然后从javascript执行调用