将属性文件中的值加载到jsp中,而不使用JSP页面中的scriplet

时间:2017-10-26 05:10:23

标签: java spring jsp servlets web

我需要从属性读取值,这个值将显示在我的JSP页面上。 我通过在JSP页面中添加java代码来执行此操作,如下所示:

<%@page import="java.io.InputStream" %>
<%@page import="java.util.Properties" %>

<%
    InputStream stream = application.getResourceAsStream("etc/appconfigweb.properties");
    Properties props = new Properties();
    props.load(stream);
    String env = props.getString("environment");
%>
    <% env %>

现在我想将属性文件值加载到JSP页面而不将JSP代码放入JSP中。是否有一种方法可以将值加载到JSP中。

2 个答案:

答案 0 :(得分:1)

您可以使用JSTL和&lt; fmt:bundle&gt;像这样的标签:

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
....
....
<fmt:bundle basename = "etc.appconfigweb">
     <fmt:message key = "environment"/><br/>
</fmt:bundle>

有关详细信息,请参阅此JSTL example

答案 1 :(得分:1)

您可以使用jstl标记库在jsp页面上加载属性,并确保您的属性文件位置应为WEB-INF\classes\etc\

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
....
....
  <fmt:setLocale value = "en"/>
  <fmt:setBundle basename = "etc.appconfigweb" var = "lang"/>
  <fmt:message key = "environment" bundle = "${lang}"/>

Example of jstl for reading Property file