Criei um exemplo bem simples aqui pra ilustrar o funcionamento de um Observer em Java utilizando jBoss Seam.
Para isso eu criei um botão que vai chamar a função “teste” em minha Action:
<a4j:commandButton value="Juntar ao Processo"
actionListener="#{minhaAction.teste}"
ajaxSingle="true" />
Na minha Action criei a função e através do Events.instance().raiseEvent(
“hunrumclaudia”); eu chamei o evento “hunrumclaudia”, assim:
public void teste(){
System.out.println("asdfvvv");
Events.instance().raiseEvent(
"hunrumclaudia");
}
Para criar o Observer eu usei o import “org.jboss.seam.annotations.Observer” e criei um método com a anotação @Observer e o nome do evento que chamará este observer, no meu caso “hunrumclaudia”.
@Observer("hunrumclaudia")
public void observadorObservanteObservacao(){
System.out.println("ie ie, pegadinha do malandro");
}
A saída do console será:
11:02:53,333 INFO [STDOUT] asdfvvv
11:02:53,334 INFO [STDOUT] ie ie, pegadinha do malandro
Uma dica rápida para o modo de compatibilidade do Internet Explorer.
Dependendo da forma como seu sistema foi escrito, ele pode ter comportamentos diferentes para o IE 7 ou IE 8.
Em alguns casos, o sistema já foi homologado no Internet Explorer 7 e o cliente resolve usar o Internet Explorer 8, e eis então que o Internet Explorer fica solicitando para que você navegue em modo de compatibilidade para que a tela não fique toda desconfigurada. Porém, o usuário pode se sentir incomodado ao ter que ficar selecionando essa opção, ou mesmo você pode querer que o browser já identifique que é necessário o modo de compatibilidade por padrão.
Para isso basta colocar a linha abaixo na HEAD de sua página.