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



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




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

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