社区
Java EE
帖子详情
struts中如何动态加载资源文件,100分求解,现答现结
hackangcn
2006-10-27 02:25:03
ApplicationResources_zh_CN.properties
我现在在后台想直接编辑此文件并动态加载,让jsp可以立即使用
先不要管unicode和中文的事情了,现在要解决的问题就是动态加载此资源文件
达人帮忙啊,100分,解决了就结贴
...全文
587
14
打赏
收藏
struts中如何动态加载资源文件,100分求解,现答现结
ApplicationResources_zh_CN.properties 我现在在后台想直接编辑此文件并动态加载,让jsp可以立即使用 先不要管unicode和中文的事情了,现在要解决的问题就是动态加载此资源文件 达人帮忙啊,100分,解决了就结贴
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hackangcn
2006-11-06
打赏
举报
回复
我做的是修改struts的语言资源文件,并且能动态加载
看了struts源码以后,我 已经实现了,哈哈
比如你在ApplicationResources_zh_CN.properties中新加了一个aaa=test
只要一刷新,就可以在jsp中立马使用<bean:message key="aaa"/>了
多看源码,很有帮助
liufei8463
2006-11-06
打赏
举报
回复
学习
sun113
2006-11-04
打赏
举报
回复
to rubyjn() ( ) 信誉:100 Blog
是不是只能运行一次阿,在什么地方循环?
z7swf
2006-11-03
打赏
举报
回复
楼上的讲讲你的思路要得?
○福泽天下○
2006-11-03
打赏
举报
回复
mark
rubyjn
2006-11-02
打赏
举报
回复
发现文件变动后随时加载,没有变动不加载。
import java.util.Properties;
import java.io.File;
import java.io.FileInputStream;
public class JPropertiesSetting {
public static void main(String args[]) {
new JPropertiesSetting();
}
/**
* 属性文件名
*/
// public static final String PFILE =
// "D:/TWorkspace/jmessage/classes/config.properties";
private static final String PFILE =
"/opt/alert/jmessage/classes/config.properties";
/**
* 对应属性文件对象变量
*/
private File m_file = null;
/**
* 属性文件的最后修改时间
*/
private long m_lastModifiedTime = 0;
/**
* 属性文件对应的属性对象变量
*/
private Properties m_props = null;
/**
* 本类可能存在的唯一个实例
*/
private static JPropertiesSetting m_instance = new JPropertiesSetting();
/**
* 私有构造函数.
*/
private JPropertiesSetting() {
this.m_file = new File(PFILE);
this.m_lastModifiedTime = this.m_file.lastModified();
if (this.m_lastModifiedTime == 0) {
System.out.println(PFILE + " file not found ");
}
this.m_props = new Properties();
try {
m_props.load(new FileInputStream(PFILE));
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 静态工厂方法
* @return ConfigManager 单例模式提供
*/
synchronized public static JPropertiesSetting getInstance() {
return m_instance;
}
/**
* 读取指定的属性项
* @param pStrName String 属性的名称
* @param pObjDefaultValue Object 默认值
* @return Object
*/
final public Object getItemValue(String pStrItemName,
Object pObjDefaultValue) {
long newTime = this.m_file.lastModified();
//检查属性文件是否被更新过.如果被更新过那么重新获取最新版本.
if (newTime == 0) {
if (this.m_lastModifiedTime == 0) {
System.out.println(PFILE + " file does not exist !");
}
else {
System.out.println(PFILE + " file was deleted !");
}
return pObjDefaultValue;
}
else if (newTime > this.m_lastModifiedTime) {
this.m_props.clear();
try {
m_props.load(new FileInputStream(PFILE));
}
catch (Exception e) {
e.printStackTrace();
}
}
this.m_lastModifiedTime = newTime;
Object val = this.m_props.getProperty(pStrItemName);
if (val == null) {
return pObjDefaultValue;
}
else {
return val;
}
}
/**
* 读取指定的属性项
* @param pItemName String
* @param value String
*/
final public Object getItemValue(String pItemName) {
return this.getItemValue(pItemName, null);
}
/**
* 设置配置项名称及其值
* @param pItemName String
* @param value String
*/
final public void setItemValue(String pItemName, String value) {
this.m_props.setProperty(pItemName, value);
return;
}
}
hackangcn
2006-11-02
打赏
举报
回复
读取资源文件只是一部分
现在已经实现了,我现在在后台动态添加一个资源文件,点一下鼠标就可以立马使用了
得益于struts源码
175cm
2006-11-01
打赏
举报
回复
呵呵!学习!楼主自己搞定了
hackangcn
2006-11-01
打赏
举报
回复
this.getClass().getClassLoader().getResourceAsStream("ApplicationResources_zh_CN.properties");
这样子就ok了
hackangcn
2006-11-01
打赏
举报
回复
to wfengxyy()
你这样得出来的is是null,我看了struts源码,读取方法你和差不多
wfengxyy
2006-10-27
打赏
举报
回复
不重新启动,那你肯定要deplay 重新编译了
hackangcn
2006-10-27
打赏
举报
回复
那如果我修改了ApplicationResources_zh_CN.properties以后,可以动态的加载它吗,就是说不重启,就可以用bean:message使用它吗?
wfengxyy
2006-10-27
打赏
举报
回复
Properties base = new Properties();
InputStream is = null;
is = getClass().getResourceAsStream("ApplicationResources_zh_CN.properties");
base.load(is);
然后通过base.getProperty("#####")就可以读取资源文件了
不知道是不是你想要的
hackangcn
2006-10-27
打赏
举报
回复
看了struts的actionservlet文件的源码
protected void initModuleMessageResources(ModuleConfig config)
throws ServletException {
MessageResourcesConfig mrcs[] = config.findMessageResourcesConfigs();
for (int i = 0; i < mrcs.length; i++) {
if ((mrcs[i].getFactory() == null)
|| (mrcs[i].getParameter() == null)) {
continue;
}
if (log.isDebugEnabled()) {
log.debug(
"Initializing module path '"
+ config.getPrefix()
+ "' message resources from '"
+ mrcs[i].getParameter()
+ "'");
}
String factory = mrcs[i].getFactory();
MessageResourcesFactory.setFactoryClass(factory);
MessageResourcesFactory factoryObject =
MessageResourcesFactory.createFactory();
factoryObject.setConfig(mrcs[i]);
MessageResources resources =
factoryObject.createResources(mrcs[i].getParameter());
resources.setReturnNull(mrcs[i].getNull());
resources.setEscape(mrcs[i].isEscape());
getServletContext().setAttribute(
mrcs[i].getKey() + config.getPrefix(),
resources);
}
}
是不是要改写这个文件?
Struts
1自学教程
Struts
1是
Struts
2学习的基础,懂了
Struts
1,学习
Struts
2会变得很轻松。很多遗留系统,需要维护,也需要我们懂点
Struts
1的知识。本次课程为14个学时,将从
Struts
1.x的环境搭建以及技术准备入手,利用
Struts
1.x实现...
加载
oracle属性文件,关于属性文件的详细介绍
我们通常会将Java应用的配置参数保存在属性文件
中
,Java应用的属性文件可以是一个正常的基于key-value对,以properties为扩展名的文件,也可以是XML文件. 在本案例
中
,將会向大家介绍如何通过Java程序输出这两种格式...
【转】Java 学习笔记
1. 关于
动态
加载
机制?? 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成
分
。很多人都能背出来Java语言的特点,所谓的
动态
加载
机制等等。当然概念往往是先记住而后消化的,可有多少人真正去...
Struts
2的基石——拦截器(Interceptor)
提到这个DEMO我想顺便跟大家
分
享一下心得——如果大家希望快速开发,一个类似
Struts
2这样的简单方便的WEB框架必不可少。我们在开发DEMO使用的还是
Struts
1.2.8,而且没有不使用任何EL(表达式语言),导致页面出现...
java 小结
想来学习Java也有两个年头了,永远... 关于
动态
加载
机制—— 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成
分
。很多人都能背出来Java语言的特点,所谓的
动态
加载
机制等等。当然概念往往是先记住
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章