1.如果有多个.properties文件,那么struts用什么函数(或者配置)来选择读取哪个.properties文件呢?
2.在一般类中要读取.properties文件需要什么函数?
在struts-config.xml中可以指定多个resource,必须指明不同的key,没指明就使用默认的key
如
<message-resources parameter="ApplicationResources" />
<message-resources key="layout" parameter="Layout" />
使用的时候指定bundle属性为相应的配置中的key
如
<message key="hello.world"/> //取ApplicationResources.properties中的hello.world
<message key="hello.world" bundle=layout/> //取Layout.properties中的hello.world
如
<message-resources parameter="ApplicationResources" />
<message-resources key="layout" parameter="Layout" />
使用的时候指定bundle属性为相应的配置中的key
如
<message key="hello.world"/> //取ApplicationResources.properties中的hello.world
<message key="hello.world" bundle=layout/> //取Layout.properties中的hello.world
回复人:deadsea(dr2tr)
2005-9-2 14:56:12
这是在jsp文件里吧,如果是在一个java工具类里呢(通过读取.properties文件获得数据库设置)
回复人:之支吾(super_zzw)
2005-9-2 15:05:13
MessageResourcesFactory factory = MessageResourcesFactory.createFactory();
resources = factory.createResources("application");//application.properties
resources.getMessage(key); //no parameter
resources.getMessage(key, arg1);//1 parameter
resources.getMessage(key, arg1,arg2);//2 parameter
resources.getMessage(key, arg1,arg2,arg3);//3 parameter
...
resources.getMessage(locale, key);
resources.getMessage(locale, key,arg1);
...
resources = factory.createResources("application");//application.properties
resources.getMessage(key); //no parameter
resources.getMessage(key, arg1);//1 parameter
resources.getMessage(key, arg1,arg2);//2 parameter
resources.getMessage(key, arg1,arg2,arg3);//3 parameter
...
resources.getMessage(locale, key);
resources.getMessage(locale, key,arg1);
...
回复人:
一级(初级)
user1
100
31269390
4245912
769444
you2004
0
2005-9-2 15:33:08
达达(dachun)
2005-9-2 16:03:18
干脆用多struts-config.xml,每个对应一个资源文件
回复人:deadsea(dr2tr)
2005-9-2 17:25:08
super_zzw(之支吾) : 谢谢
但是我按照你的方法做了,似乎还是不对
MessageResourcesFactory factory = MessageResourcesFactory.createFactory();
MessageResources resources = factory.createResources("ApplicationConfig");
String conn_str = resources.getMessage("db.conn_str");
//db.conn_str在Application.properties中定义,我单步调试发现这样写之后,conn_str的值还
//是null
struts-config.xml中定义如下:
<message-resources parameter="com.traffic.struts.ApplicationResources" />
<message-resources parameter="com.traffic.struts.ApplicationConfig" key="config"/>
不知道为什么?
但是我按照你的方法做了,似乎还是不对
MessageResourcesFactory factory = MessageResourcesFactory.createFactory();
MessageResources resources = factory.createResources("ApplicationConfig");
String conn_str = resources.getMessage("db.conn_str");
//db.conn_str在Application.properties中定义,我单步调试发现这样写之后,conn_str的值还
//是null
struts-config.xml中定义如下:
<message-resources parameter="com.traffic.struts.ApplicationResources" />
<message-resources parameter="com.traffic.struts.ApplicationConfig" key="config"/>
不知道为什么?
回复人:之支吾(super_zzw)
2005-9-2 18:08:13
如果你的ApplicationConfig.properties文件在WEB-INF/classes目录下面应该可以的,当然,前提是在webapp中运行你的代码,而不是main函数里面测试你的代码。加载source的方式不一样的。如果你一定要在application的main函数里的取,只能自己去写加载ApplicationConfig.properties的方法了。
回复人:deadsea(dr2tr)
2005-9-3 9:47:10
谢谢super_zzw(之支吾)
果然是因为.properties文件目录不对才这样的
原因是我用MyEclipse做的时候,他的.properties文件是放在/src/com.yourcompanyname.struts里面的,不知道有什么设置可以改变目录呢(从classes改变到/src/com.yourcompanyname.struts) ?
果然是因为.properties文件目录不对才这样的
原因是我用MyEclipse做的时候,他的.properties文件是放在/src/com.yourcompanyname.struts里面的,不知道有什么设置可以改变目录呢(从classes改变到/src/com.yourcompanyname.struts) ?