在Spring Boot 2.0 Web应用程序中,如何从静态Javascript文件中访问Java变量?

高手

我有静态Javascript文件main.js,在下面的变量中声明:

var base = '/localhost:8382/myservice'  // for dev
//var base = '/example.com/myservice'  // for prod

根据弹簧轮廓的开发或生产,它们具有不同的价值。我可以在application.properties中为dev和prod配置文件定义此变量。但是如何从main.js中访问此变量?

目前,我必须根据个人资料在main.js中手动注释掉其中一个。

用户名

该答案基于Thymeleaf2。如果您使用的是3,则可以看到此官方文档(链接)示例(链接)

我会script在这样的HTML中添加标签

<script th:inline="javascript">
    var headParam = {
        baseModelValue: /*[[@{${base}}]]*/,
        baseBeanValue: /*[[@{${@customProperties.base}}]]*/
    }
</script>

请注意,我@{...}之所以使用,是因为这些值是URL。如果您不希望Thymeleaf重写您的URL,则不必使用它。如果不是URL,则不应使用它。

您可以从js文件中使用它,例如 headParam.baseModelValue

  • 使用像baseModelValue如果您使用的是带有控制器传递值Model
  • baseBeanValue如果使用属性文件和配置文件,则使用类似customProperties是使用@ConfigurationProperties注释的Bean名称

CustomProperties的例子

@Repository
@ConfigurationProperties("foo")
public class CustomProperties {
    private String base;

    //Getters & setters
}

和一个YAML文件:

---
spring: 
  profiles: dev

foo:
  base: /localhost:8382/myservice
---
spring: 
  profiles: prod

foo:
  base: /example.com/myservice

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Spring Security 5在Spring Boot应用程序(而非Web应用程序)中获取oauth2访问令牌

如何在Spring Boot Web应用程序中配置2个单独的过滤器?

在 log4j2 中访问 spring 配置文件以获取 spring boot 应用程序

我如何在 Spring Boot 2 应用程序中为资产管道(bertramlabs)配置静态版本控制(摘要)?

如何在我的Spring Boot应用程序中从AWS访问环境变量

如何在 Spring Boot 应用程序中设置 mina2 hl7Codec

如何在Spring Boot 2应用程序中设置Tomcat unloadDelay?

Spring Boot中构造函数的参数0

如何模拟测试Kotlin Spring Boot 2应用程序

如何从2个不同的Spring Boot应用程序访问同一数据库

如何从另一个Spring Boot应用程序访问一个Spring Boot应用程序的内存h2数据库

如何仅为 Spring Boot Security OAuth2 应用程序中的某些类启用 OAuth2?

如何使用主要方法访问Spring Boot应用程序中application.properties文件中的值

在Spring Boot应用程序中访问cloudfoundry中用户提供的环境变量

Spring Boot 2应用程序的JUnit 5测试中的模拟自动关联

Spring Boot应用程序中的H2模式为空

Postgres Spring Boot R2dbc应用程序中缺少DatabsaeClient

在Spring Boot应用程序中找不到我的h2数据库

spring-boot 1.2.0.M2中断应用程序

无法在Spring Boot 2应用程序中为添加拦截器配置WebMvcConfigurer

使用apache-cxf在spring boot 2应用程序中未加载application.yml

如何在Spring Boot应用程序中的静态字段上读取属性?

Spring Boot 2 JPA应用程序中如何在MariaDB中选择InnoDB或XtraDB作为存储引擎

在Spring Boot应用程序中使用Flyway时,如何在H2中加载初始数据?

wso2 集成 Spring Boot 应用程序

Spring Boot应用程序中的会话

Spring Boot应用程序中的NonUniqueResultException

如何在Spring Boot 2中定义默认处理程序

如何访问我的Spring Boot应用程序中Jar文件的Controller类中提到的Rest API