0
public class LocaleViewHandler extends ViewHandler{
private final ViewHandler base;
public LocaleViewHandler(ViewHandler base){
super();
this.base = base;
}
@Override
public Locale calculateLocale(FacesContext context) {
Locale locale;
HttpSession session = (HttpSession) context.getExternalContext()
.getSession(false);
if (session != null) {
//Return the locale saved by the managed bean earlier
locale = (Locale) session.getAttribute("locale");
if (locale == null) {
locale= new Locale("en");
}
return locale;
}
return base.calculateLocale(context);
}
@Override
public String calculateRenderKitId(FacesContext arg0) {
// TODO Auto-generated method stub
return base.calculateRenderKitId(arg0);
}
@Override
public UIViewRoot createView(FacesContext arg0, String arg1) {
// TODO Auto-generated method stub
return base.createView(arg0, arg1);
}
@Override
public String getActionURL(FacesContext arg0, String arg1) {
// TODO Auto-generated method stub
return base.getActionURL(arg0, arg1);
}
@Override
public String getResourceURL(FacesContext arg0, String arg1) {
// TODO Auto-generated method stub
return base.getResourceURL(arg0, arg1);
}
@Override
public void renderView(FacesContext arg0, UIViewRoot arg1)
throws IOException, FacesException {
// TODO Auto-generated method stub
base.renderView(arg0, arg1);
}
@Override
public UIViewRoot restoreView(FacesContext arg0, String arg1) {
// TODO Auto-generated method stub
return base.restoreView(arg0, arg1);
}
@Override
public void writeState(FacesContext arg0) throws IOException {
// TODO Auto-generated method stub
base.writeState(arg0);
}
public ViewHandler getBase() {
return base;
}
}
내부화 예제 작업을 시도하고 있는데 위와 같이 뷰 핸들러를 작성했습니다. 나는 2 개의 로케일 영어와 프랑스어를 가지고있다. 그러나이 핸들러를 작성한 후에. 콘솔에는 오류가 없지만 빈 페이지가 표시됩니다.보기를보기 위해 할 수있는 작업은 무엇입니까?뷰 핸들러를 사용한 내부화는 빈 페이지를 표시합니다.