public class ChangeLocaleBean {

    public String changeLocale() {
	FacesContext context = FacesContext.getCurrentInstance();
	String languageCode = getLanguageCode(context);
	context.getViewRoot().setLocale(new Locale(languageCode));
	return null;
    }

    // Request parameters must be dug out of the Faces context:

    private String getLanguageCode(FacesContext context) {
	Map<String, String> params = context.getExternalContext().
	    getRequestParameterMap();
	return params.get("languageCode");
    }
}