我们有一个JSF2.0 / EJB3.0应用程序。是否可以从StatelessSessionBean中访问用户的语言/区域设置?比如说那样的东西?
@Stateless
@Local(MyService.class)
public class MyServiceBean implements MyService {
@Resource
private SessionContext context;
public void doSomething() {
Principal principal = context.getCallerPrincipal();
// how to get acccess to user's language ?
Locale locale = ...
}
}
当然,可以将Locale从Web层传递到ejb tier by参数到每个方法。但这是最聪明的变种吗?
是否有更好的解决方案,类似于 context.getCallerPrincipal();
我正在寻找类似的事情: context.getCallerLocale();
感谢您的帮助。 尤
答案 0 :(得分:0)
没有这样的标准功能。一种技术是使用线程本地,但您需要小心确保调用.remove()以避免导致容器的线程池出现问题。唯一的另一种选择是使用特定于供应商的功能,例如WebSphere Application Server的Internationalization service。