Pergunta

Sou novo no JSF 2.0. Na última versão, entendo que, se quero alterar regras sobre "o que enviar para o cliente", só preciso configurar o faces-config.xml.

Agora, na versão 2.0, como gerenciar a ação? Por exemplo, se eu tiver isso em um index.xhtml

<h:commandButton id="submit" value="submit" action="response" />

E preciso ligar para uma página chamada Response.html (não xhtml) ou aquela página colocada em /então /ponsonse.html, ou algo mais? Como pode fazer isso? Eu sei que o JSF 2.0 é muito flexível sobre essas coisas (o conceito de links href é derrotado). Então, acho que posso gerenciar isso com outras metodologias, certo?

Foi útil?

Solução

o action pode apontar duas coisas:

  1. Uma expressão de método action="#{bean.methodname}" Onde o método é assim:

    @ManagedBean
    @RequestScoped
    public class Bean {
        public String methodname() {
            // Do some business task here.
            return "response";
        }
    }
    

    Depois de executar o método, a ação acabará contendo efetivamente o valor de retorno do método, assim: action="response".

    Você também pode controlar o resultado "dinamicamente" da maneira usual java:

    public String methodname() {
        if (someCondition) {
            return "somepage";
        } else {
            return "anotherpage";
        }
    }
    

    Dependendo do resultado da condição, a ação acabará como action="somepage" ou action="anotherpage"

  2. Outra página xhtml no mesmo Pasta como a página atual XHTML. Você só precisa especificar o nome do arquivo: action="response".

De qualquer maneira, ele irá para a página xhtml que é composta por outcome + ".xhtml" Onde outcome é o valor da ação (por exemplo response.xhtml, somepage.xhtml ou anotherpage.xhtml) que deve estar na mesma pasta que o arquivo xhtml contendo o h:commandButton.

Você não precisa configurar nada em faces-config.xml por esta. Anteriormente, durante o JSF 1.x idades, você precisaria definir <navigation-case> por esta.

Veja também:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top