在jsp页面中直接读取.properties文件中的配置

前提

  • .properties配置文件放在web-inf/classes文件夹下,即与class文件放在一起
  • 假设有一systemInfo.properties文件,
    AppName=这是可自定义的产品名称
    

    一、使用ResourceBundle

    众所周知,在jsp页面中是可以写java代码的,因此使用java.util包下的ResourceBundle来读取properties文件中的属性

    用法

  • 在jsp页面顶部引入java.util包
    <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
    
  • 使用ResourceBundle 加载properties文件
    ResourceBundle resource = ResourceBundle.getBundle("systemInfo"); // 不带properties扩展名的文件名
    
  • 读取配置值
resource.getString("AppName"); // 属性名

完整示例

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>

<%
    ResourceBundle resource = ResourceBundle.getBundle("systemInfo");
%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- 直接输出配置值 -->
        <title><%=resource.getString("AppName") %></title>
    </head>
    <body>
        <script type="text/javascript">
            // 赋值给js变量
            var appName = 'resource.getString("AppName")';
        </script>
    </body>
</html>

二、使用JSTL标签fmt:message

  • 引入jstl中的fmt标签
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  • 使用fmt:setBundle加载properties文件
<!-- basename为不带properties扩展名的文件名;var为存储该配置文件的变量名 -->
<fmt:setBundle basename="systemInfo" var="sysInfo" /> // 
  • 使用fmt:message读取配置值
    <!-- key为配置文件中的属性名;var为存储该配置值的变量名;bundle为上一步中存储配置文件的变量名 -->
    <fmt:message key="AppName" var="appName" bundle="${sysInfo}" /> 
    

  • 使用EL表达式读取配置值
<!-- 上一步中存储配置值的变量名 -->
${appName}

完整示例

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!-- 加载systemInfo配置文件 -->
<fmt:setBundle basename="systemInfo" var="sysInfo" />
<!-- 读取配置值AppName,并赋值给变量appName -->
<fmt:message key="AppName" var="appName" bundle="${sysInfo}" />

<!DOCTYPE html>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- 直接输出配置值 -->
        <title>${appName}</title>
    </head>

    <body>
        <script type="text/javascript">
            // 赋值给js变量
            var appName= '${appName}';
        </script>
    </body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_42003702/article/details/130008911
今日推荐