Como o JSF sabe qual botão foi clicado?

Amigos,

Estou com uma dúvida sobre o funcionamento interno do JSF… imaginando que eu tenho um form com dois commandButtons, cada um enviando para uma action diferente dentro do JSF. Como o JSF sabe qual botão foi clicado, já que o action do form na página é sempre o mesmo? Existe alguma informação no header do request ou nos dados do post que contém a informação de que botão foi clicado?

Essa dúvida surgiu quando eu tentei fazer um post por um programa automatizado, e como ele não “clica” em nenhum botão (faz o post diretamente pela aplicação), não funciona para a minha aplicação JSF.

Agradeço a ajuda!

Tipo se vc tiver dois botoes por exemplo um inserir e outro limpar estaram apontando para metodos diferentes … Quem define qual classe chamar os metodos e o facesconfig ou por anotacoes na sua classe.

vc pode recuperar o id do componente que disparou a ação.

Então, mas como o JSF sabe isso internamente? Como ele identifica qual botão foi clicado? no facesconfig ou na anotação, é identificado o que deve ocorrer, mas como o JSF sabe que o usuário clicou no botão X, para poder verificar qual é action relacionada? Afinal, ele precisa saber qual botão foi clicado para saber qual a action que o botão contém.

Mas de onde virá esse id? Como o JSF conseguiu identificar qual botão foi clicado?

Valeu pelas respostas colegas! Talvez eu não tenha sido claro na pergunta, a minha dúvida é como o JSF identificou qual botão foi clicado na tela, não qual action vai ser chamada. No momento que o request chega ao server, ele tem alguma informação indicando o botão que foi clicado?

Obrigado!