如何使用.properties类型的文件 开发Web项目,以前用过国际化的资源文件,和Struts.pripertise , 日志资源文件等等,就是想知道凭什么,会识别,引用对应的资源文件,当时资源文件一般都是放在Src目录下的...........突然想起这个问题,希望高手不吝赐教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以设想一下嘛,如果你是作者会怎么设计呢。首先考虑到要国际化,所以一些需要国际化的东西肯定不能写死,那就用配置文件吧。然后规定一下资源文件必须存放在哪里,然后资源文件名字的格式。或者资源文件存放的位置要在struts,webwork的配置文件里说明。程序运行是检查到要使用国际化的资源文件,就开始找了查看是不是程序里说明了必须用哪个国家的资源文件,要不就看当前系统的环境看是哪个国家的,确定了就根据国家的标志找对应的资源文件。具体资源文件放在哪里,资源文件名称的格式就看作者的想法了。 不就是想知道为什么会识别嘛?因为你在程序中配置了, 国际化的资源文件再xml中配置了就有用,没配置就会说找不到资源文件。Struts.pripertise struts2自己配置了,struts认, 默认的是src。, 不用property, 用xml,也可以配置相关信息,还是默认放在src下,struts就认这个。 给你看段关于国际化底层实现的代码/** * 访问资源文件 * @param request * @param response */ private void processResource(HttpServletRequest request, HttpServletResponse response) { //取得本地化信息 Locale locale = request.getLocale(); ResourceBundle rb = resourceBoundles.get(locale); if (rb == null) { rb = ResourceBundle.getBundle("resource", locale); resourceBoundles.put(locale, rb); } //保存本地化信息到request对象 request.setAttribute(Globals.KEY_MESSAGE_RESOURCES, rb); logger.debug("获取资源文件: " + rb); } /** * * @param request * @param response * @return * @throws Exception */ private String processPath(HttpServletRequest request, HttpServletResponse response) throws Exception { String uri = request.getRequestURI(); String path = uri.substring(uri.indexOf(prefix) + prefix.length()); return path; }rb = ResourceBundle.getBundle("resource", locale);这句话会根据locale来得到你本地信息如果是中文机器就是中文然后会去找 以resource开头的属性文件比如resource_zh_CN.properties就会去读取这里面的信息 金雅拓的token保安编码器谁用过??求助大神 Struts2配置文时报错 郁闷了 帮忙看下 java 有什么好方法调用 ocx控件,急 在线等待! Apache2.2.8+SSL双向链路 如何配置?? 关于开发性接口问题? 有谁有能力接项目。 Hibernate里面的乱码问题 外层类和内部类 ,关于序列化的一些理解是否正确? 还是spring管理action的问题啊,action不能实例化,求各位帮助。 关于数组越界的问题 jstl1.0中怎么使用jstl 1.1中的fn java 操作 liunx命令 ‘ 进行转换
首先考虑到要国际化,所以一些需要国际化的东西肯定不能写死,那就用配置文件吧。
然后规定一下资源文件必须存放在哪里,然后资源文件名字的格式。
或者资源文件存放的位置要在struts,webwork的配置文件里说明。程序运行是检查到要使用国际化的资源文件,就开始找了查看是不是程序里说明了必须用哪个国家的资源文件,要不就看当前系统的环境看是哪个国家的,确定了就根据国家的标志找对应的资源文件。具体资源文件放在哪里,资源文件名称的格式就看作者的想法了。
* 访问资源文件
* @param request
* @param response
*/
private void processResource(HttpServletRequest request,
HttpServletResponse response) {
//取得本地化信息
Locale locale = request.getLocale();
ResourceBundle rb = resourceBoundles.get(locale);
if (rb == null) {
rb = ResourceBundle.getBundle("resource", locale);
resourceBoundles.put(locale, rb);
}
//保存本地化信息到request对象
request.setAttribute(Globals.KEY_MESSAGE_RESOURCES, rb);
logger.debug("获取资源文件: " + rb);
} /**
*
* @param request
* @param response
* @return
* @throws Exception
*/
private String processPath(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String uri = request.getRequestURI();
String path = uri.substring(uri.indexOf(prefix) + prefix.length());
return path;
}rb = ResourceBundle.getBundle("resource", locale);这句话会根据locale来得到你本地信息如果是中文机器就是中文然后会去找 以resource开头的属性文件
比如resource_zh_CN.properties
就会去读取这里面的信息