当前位置: 代码迷 >> Java Web开发 >> 关于struts资源文件的问题.
  详细解决方案

关于struts资源文件的问题.

热度:293   发布时间:2007-10-30 14:13:56.0
关于struts资源文件的问题.
请教各位大虾,struts实现国际化的时候,想在数据库里只存记录的代号(就是资源里的key),具体信息写到资源文件里,这样可能会有很多的资源文件,一种语言一个吧.
后台内容添加以后就不改变了.而且添加内容也是手动添加.
现在有一问题,就是查询的时候,得先到资源文件里找value的值,然后根据value的值再在资源文件里找对应的key值,然后再根据key到数据库中找对应此key的id并把id取出来做成超链接.
请问,如何在资源文件里找value呢?再就是找到value后再怎么找key呢? 想了好多天了.网上也没有相关资料.
搜索更多相关主题的帖子: 资源文件  struts  数据库  key  value  

----------------解决方案--------------------------------------------------------
不清楚,关注中....
----------------解决方案--------------------------------------------------------

我想到一个办法,还没测试.只是写了一下代码.
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不知道这样能不能行.


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
  相关解决方案