Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取tagx/jspx中的系统属性?_Java_Spring_Jsp - Fatal编程技术网

Java 如何读取tagx/jspx中的系统属性?

Java 如何读取tagx/jspx中的系统属性?,java,spring,jsp,Java,Spring,Jsp,我正在定义一个名为“version.tagx”的tagx文件。此标记的职责是发出一个锚标记,其显示文本是应用程序的版本号。当前,文件的定义如下所示: <jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http:/

我正在定义一个名为“version.tagx”的tagx文件。此标记的职责是发出一个锚标记,其显示文本是应用程序的版本号。当前,文件的定义如下所示:

<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
  <jsp:output omit-xml-declaration="yes" />

  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />

  <c:if test="${empty render or render}">
    <spring:message code="global_version" />
    <spring:url var="changelog" value="/resources/changelog.txt" />

    <c:out value=": " />
    <a href="${changelog}" title="Built by ${application_builtBy} on ${application_buildTime}">${application_version}</a>
  </c:if>
</jsp:root>
以下是我的app-info.properties文件的内容:

application_version=1.0
application_buildTime=05-04-2012 00:00:00
application_builtBy=me
application_buildNumber=55
我想要的是让我的tagx发出

Version: <a href="path/to/changelog.html" title="Built by me on 05-04-2012 00:00:00">1.0</a>
版本:
目前我得到的是:

Version: <a href="path/to/changelog.html" title="Built by  on "></a>
版本:

有人知道实现这一目标的方法吗?我是否应该尝试完全不同的方法,放弃所有属性文件?

在webmvc-config.xml中添加util:properties,其中/WEB-INF/spring/application.properties是属性文件的路径:

<util:properties id="applicationProps" location="/WEB-INF/spring/application.properties"/>

然后,只需在锚定标记之前添加以下内容:

<spring:eval expression="@applicationProps['application_builtBy']" var="application_builtBy"/>
<spring:eval expression="@applicationProps['application_buildTime']" var="application_buildTime"/>
<spring:eval expression="@applicationProps['application_version']" var="application_version"/>


希望有帮助。

在webmvc-config.xml中添加util:properties,其中/WEB-INF/spring/application.properties是属性文件的路径:

<util:properties id="applicationProps" location="/WEB-INF/spring/application.properties"/>

然后,只需在锚定标记之前添加以下内容:

<spring:eval expression="@applicationProps['application_builtBy']" var="application_builtBy"/>
<spring:eval expression="@applicationProps['application_buildTime']" var="application_buildTime"/>
<spring:eval expression="@applicationProps['application_version']" var="application_version"/>


希望能有所帮助。

如果您正在使用java配置并只是实例化PropertySourcesPlaceholderConfigurer,那么您还可以做些什么来避免在单个属性占位符中查找属性,或者使用环境对象:

<spring:eval expression="@environment.getProperty('application_builtBy')" />

如果您使用java配置并只是实例化一个PropertySourcesPlaceholderConfigurer,您还可以做什么来避免在单个属性占位符中查找属性,或者使用环境对象:

<spring:eval expression="@environment.getProperty('application_builtBy')" />


Sweet!自从我发布这个问题以来,我一直在努力解决这个问题,同时也一直依赖于一个丑陋的工作环境。真的很欣赏你的洞察力!我能问一下你是怎么知道答案的吗?是否有一些好的文档应该保留在书签中?Web MVC框架参考手册()使用applicationProps作为一个很好的示例,根据application.version更改MVC:resources路径。当您需要确保在部署新版本时更新javascript和其他资源时,这非常有用。如果没有这个配置,javascript不会从浏览器的缓存中更新!自从我发布这个问题以来,我一直在努力解决这个问题,同时也一直依赖于一个丑陋的工作环境。真的很欣赏你的洞察力!我能问一下你是怎么知道答案的吗?是否有一些好的文档应该保留在书签中?Web MVC框架参考手册()使用applicationProps作为一个很好的示例,根据application.version更改MVC:resources路径。当您需要确保在部署新版本时更新javascript和其他资源时,这非常有用。如果没有此配置,则不会从浏览器缓存更新javascript。