Men*_*nno 2 java jsf facelets internationalization
我已经在我的项目中成功实现了i18n.现在我被困在我的豆...
private String pageTitle;
public List<Product> getProductsByCategory(String category) {
if(validate(category)) {
pageTitle = category;
return service.getProductsByCategory(String category);
} else {
pageTitle = "Random products";
return service.getRandomProducts();
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我想让我的pageTitle依赖于提供的方法的结果.一切都很好,但考虑到国际化,这并不好.我已经尝试使用Properties.load(新的FileInputStream)方法,但考虑到文件名为base.properties,base_en_US.properties等,这不起作用.
有谁知道这种情况下的最佳做法?提前致谢!
您需要使用与JSF相同的方式来加载资源包:使用ResourceBundleAPI.这里有一个例子假设基本名称是com.example.i18n.base(完全按照你的使用值<f:loadBundle>在视图中<resource-bundle>的faces-config.xml)
ResourceBundle bundle = ResourceBundle.getBundle("com.example.i18n.base",
FacesContext.getCurrentInstance().getViewRoot().getLocale());
String pageTitle = bundle.getString("page.title");
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |