以下ProvinceHandler.java是依province.properties文件动态生成一个下拉列表框的类ProvinceHandler, 但为什么还要另外有两个文件:province_zh.properties 和province_zh_cn.properties ? 这些文件有何作用?
province_zh.properties 文件内容
count=3
city1=\u5317\u4eac
city2=\u5929\u6d25
city3=\u4e0a\u6d77province_zh_cn.properties 文件内容
count=3
city1=北京
city2=天津
city3=上海province.properties 文件内容
count=3
city1=\u5317\u4eac
city2=\u5929\u6d25
city3=\u4e0a\u6d77ProvinceHandler.java内容如下:
package com.wxpn.tutorial.ec.util;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.Properties;public class ProvinceHandler {
private static String resourcePath; private static Properties configProperties = System.getProperties(); /**
 *定位属性文件config.properties的位置
 */ static {
int pos = 0;
URL url = ProvinceHandler.class.getResource("ProvinceHandler.class"); String pkgName = ProvinceHandler.class.getPackage().getName(); do {
pos = pkgName.indexOf(".");
if (pos > 0) {
pkgName = pkgName.substring(0, pos) + "/"
+ pkgName.substring(pos + 1);
}
} while (pos > 0); String filePath = url.getFile();
String appPath = filePath.substring(0, filePath.indexOf("/classes/"
+ pkgName));
resourcePath = appPath + "/resources"; try {
configProperties.load(new FileInputStream(ProvinceHandler
.getResourcePath()
+ "/province.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /**
 * @return
 */
public static String getResourcePath() {
return resourcePath;
} /**
 * @return
 */
public static Properties getConfigProperties() {
return configProperties;
} public static String getProperty(String name) {
return getConfigProperties().getProperty(name);
} public static String getNames() {
StringBuffer out = new StringBuffer();
String serverName = null; out.append("<select name=\"Province\" size=\"1\">\n");
int serverCount = Integer
.parseInt(ProvinceHandler.getProperty("count"));
for (int i = 1; i <= serverCount; i++) {
serverName = ProvinceHandler.getProperty("city" + i);
out.append("<option value=\"").append(serverName).append("\">")
.append(serverName).append("</option>\n");
}
out.append("</select>\n");
return out.toString();
}
}}