Jaka jest różnica między FacesContext i ExternalContext

Jaka jest różnica pomiędzyFacesContext iExternalContext? Kiedy mogę użyć jednego lub drugiego? Co ma ten i co ma drugi?

Poniższy przykład pochodzi z książki JavaServer Faces 3rd edition:

 <h:commandButton ... actionListener="#{rushmore.handleMouseClick}" />

Kopia zapasowa fasoli:

public void handleMouseClick(ActionEvent e) {
    FacesContext context = FacesContext.getCurrentInstance();
    String clientId = e.getComponent().getClientId(context);
    Map<String, String> requestParams = context.getExternalContext().getRequestParameterMap();
    // ...
}

Dlaczego parametr żądania jest wExternalContext? Co jestclientId? Czy jest generowany przez JSF podczas uruchamiania aplikacji?

questionAnswers(1)

yourAnswerToTheQuestion