1
我正在将我的应用程序从JSF 1.2升级到JSF 2。JSF2语言环境处理程序
我遇到了以下问题。我有locale处理程序处理通过检查请求的URL使用的区域设置。
@Configurable
public class MutationViewHandler extends FaceletViewHandler {
@Autowired
private LanguageMutationServiceIface mutationService;
public MutationViewHandler(ViewHandler parent) {
super(parent);
}
@Override
public Locale calculateLocale(FacesContext context) {
String mutation = FacesUtil.getRequestParameter("mutation");
if (mutation == null) {
return new Locale(mutationService.getDefaultLanguageMutation().getName());
} else {
return new Locale(mutation);
}
}
}
但是在JSF 2中,这个类不推荐使用,并且在MyFaces中使用时会导致错误(NPE)。我试图用简单的ViewHandler来实现它,但是它迫使我在希望使用默认行为的地方实现许多方法。
感谢您的帮助。
我应该从getWrapped方法返回的的ViewHandler?有没有办法获得默认的? – malejpavouk 2011-06-10 10:49:21
只是在施工期间通过的那个。我用启动片段更新了答案。 – BalusC 2011-06-10 10:50:14
完美,适合我。它比我想象的更简单,我正在寻找一个陷阱,但没有:-)。非常感谢。 – malejpavouk 2011-06-10 10:58:26