标题:关于struts资源文件的问题.
只看楼主
jackeysion
Rank: 2
等 级:论坛游民
帖 子:36
专家分:10
注 册:2007-6-16
 问题点数:0 回复次数:3 
关于struts资源文件的问题.
请教各位大虾,struts实现国际化的时候,想在数据库里只存记录的代号(就是资源里的key),具体信息写到资源文件里,这样可能会有很多的资源文件,一种语言一个吧.
后台内容添加以后就不改变了.而且添加内容也是手动添加.
现在有一问题,就是查询的时候,得先到资源文件里找value的值,然后根据value的值再在资源文件里找对应的key值,然后再根据key到数据库中找对应此key的id并把id取出来做成超链接.
请问,如何在资源文件里找value呢?再就是找到value后再怎么找key呢? 想了好多天了.网上也没有相关资料.
搜索更多相关主题的帖子: 资源文件 struts 数据库 key value 
2007-10-30 14:13
无缘今生
Rank: 2
等 级:新手上路
威 望:3
帖 子:523
专家分:7
注 册:2007-6-25
得分:0 
不清楚,关注中....

时不再来!!!
2007-10-31 12:40
jackeysion
Rank: 2
等 级:论坛游民
帖 子:36
专家分:10
注 册:2007-6-16
得分:0 

我想到一个办法,还没测试.只是写了一下代码.
public List getKeys(String selectName,String bundleName){
ArrayList keys = null;
ResourceBundle bundle = ResourceBundle.getBundle("com.store.struts." + bundleName);
List keyList = (List)bundle.getKeys();//获取bundle中所有的键值.
Iterator iter = keyList.iterator();
String key = null;
/*
* 遍历键值表,找出键值对应value与selectName相同,或selectName是value子串的key.添加到keys里
*/
while(iter.hasNext()){
key = (String)iter.next();
String value = bundle.getString(key);
if(value.contains(selectName) || value == selectName || value.equals(selectName) ){
keys.add(key);
}
}
return keys;//返回所需的键值表.
}
/*
* 判断该执行哪一个bundle来获取keys表.
*
*/
/**
* @return keys
*/
public List judgeBundle(HttpServletRequest request , String selectName){
List keys = null;
Locale locale = request.getLocale();
String country= locale.getCountry();
if(country.equalsIgnoreCase("zh")){
keys = getKeys(selectName,"ApplicationResource_zh");
}
else if(country.equalsIgnoreCase("en")){
keys = getKeys(selectName,"ApplicationResource_en ");
}
else{
keys = getKeys(selectName,"");
}
return keys;
}
bu不知道这样能不能行.


2007-10-31 13:38
黄袖标
Rank: 4
等 级:贵宾
威 望:13
帖 子:676
专家分:0
注 册:2007-3-22
得分:0 

建立一个与action对应的property文件即可。


我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
2007-11-07 18:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-181972-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.278546 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved