public class ChangeLocaleBean {

    // Note that this is an action listener method, 
    // not an action method: 

    public void changeLocale(ActionEvent event) {
	UIComponent component = event.getComponent();
	String languageCode = getLanguageCode(component);
	FacesContext.getCurrentInstance()
	    .getViewRoot().setLocale(new Locale(languageCode));
    }

    // Attributes must be dug out of the component:

    private String getLanguageCode(UIComponent component) {
	Map<String, Object> attrs = component.getAttributes();
	return (String) attrs.get("languageCode");
    }
}