f: viewAction ignorado, quando commandButton navega para a página

Estou com um problema com o recurso JSF 2.2<f:viewAction action="#{...}/>. Coloquei essa tag na minha página XHTML, chamadaviewActionStart.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
    <f:view>
        <f:metadata>
            <f:viewAction action="#{redirect.getView()}" onPostback="true"
                immediate="true" />
        </f:metadata>
    </f:view>
    <h:outputText value="If you see that text, the viewAction was not performed." />
</h:body>
</html>

Se eu visitar esta página XHTML diretamente, tudo funcionará bem: o métodoredirect.getView() é chamado e um redirecionamento para outra página é executado.

Agora eu tenho minha página de destino, que é mostrada antes dessa viewActionStart-Page. Há um botão, que basicamente deve navegar até minha viewActionStart-Page para mostrar o<f:viewAction> efeito. O código a seguir é desta página de destinoindex.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
    <f:view>
        <h:form>
            <h:commandButton action="viewActionStart.xhtml"
                value="To f:viewAction Page" />
        </h:form>
    </f:view>
</h:body>
</html>

Se eu pressionar esse botão de comando, o conteúdo do viewActionStart.xhtml será mostrado. Por que o JSF ignora o<f:viewAction>? Eu não entendo porque oviewAction não funciona em todo carregamento de página. Eu tentei com aquelesonPostback e atributos "imediatos", mas nada muda.

Outro resultado estranho é que, depois que eu clico no botão de comando e vejo o conteúdo de viewActionStart.xhtml, o URL ainda permanece emlocalhost: 8080 / UIIncludeTest / index.xhtml. Mas não deve parecer esse URL comolocalhost: 8080 / UIIncludeTest / viewActionStart.xhtml após o botão de comando faz a navegação?

Estou fazendo algo errado? Ou eu simplesmente entendi mal<f:viewAction>? O estranho é que funciona se eu navegar diretamente para viewActionStart.xhtml.

Estou tentando fazer isso funcionar:

JSF-2.2.6Tomcat-7.0.47PrimeFaces 5.0

Eu li os vários posts relacionados a<f:viewAction> mas nada ajudou.

questionAnswers(1)

yourAnswerToTheQuestion