概要
在JavaWeb项目中可以将一些通用的配置放置在.properties文件中,然后在页面中直接读取配置值,在需要对通用配置做变更时即可做到一处修改、处处生效。如:项目中JS中需要异步请求一些域名可以将域名的配置放在配置文件中(properties文件)。
虽然可以用JSP中写java代码来读取properties文件,可是页面整洁度和代码比较多,这里不做演示,建议采用JSTL的<fmt:message>标签来实现起来会更清爽,开始吧。
先来看看要读取的文件search-url.properties(放在resources资源目录下):
search_url=http://search.eyaoshun.com
1.引入JSTL的fmt标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
2.使用<fmt:setBundle>加载properties文件,先将配置文件资源加载到页面如:search-url.properties,起个名称叫searchURL
<!-- basename为不带properties扩展名的文件名,如search-url.properties;var为存储该配置文件的变量名 -->
<fmt:setBundle basename="search-url" var="searchURL" />
3.使用<fmt:message>读取配置值,关键的标签就是它,给读取到的属性值起个名叫search_url
<!-- key为配置文件中的属性名;var为存储该配置值的变量名;bundle为上一步中存储配置文件的变量名 -->
<fmt:message key="search_url" var="search_url" bundle="${searchURL}" />
4.使用EL表达式读取配置值
<!-- 上一步中存储配置值的变量名 -->
${search_url}
OK,代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!-- basename为不带properties扩展名的文件名;var为存储该配置文件的变量名 -->
<fmt:setBundle basename="search-url" var="searchURL" />
<!-- key为配置文件中的属性名;var为存储该配置值的变量名;bundle为上一步中存储配置文件的变量名 -->
<fmt:message key="search_url" var="search_url" bundle="${searchURL}" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP读取配置文件信息</title>
<script type="text/javascript">var s= '${search_url}';console.log(s)</script>
</head>
<body>
<div>${search_url}</div>
</body>
</html>
演示如下:
(完)