Jsf 2 更改(导航)到其他jsf视图后,我无法再访问托管bean方法

Jsf 2 更改(导航)到其他jsf视图后,我无法再访问托管bean方法,jsf-2,primefaces,Jsf 2,Primefaces,我有两种观点:funcionario-pesquisa.xhtml和funcionario-edicao.xhtml。。。 两者都使用模板: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns

我有两种观点:funcionario-pesquisa.xhtml和funcionario-edicao.xhtml。。。 两者都使用模板:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Maven</title>
</h:head>
<h:body>

    ...

    <div class="body">
        <ui:insert name="body" />
    </div>
</h:body>
</html>

专家
...
在我的funcionario-pesquisa.xhtml中,我在h:form中有一个带有PrimeFaces命令按钮的列表(设置“funcionario”并重定向到funcionario edicao.xhtml):

<ui:define name="body">
    <h:form id="formFuncionarioPesquisa">

        ...

        <p:dataTable 
            id="funcionarioListaId"
            var="funcionarioRegistro" 
            value="#{funcionarioControlador.funcionarioLista}">

            <f:facet name="header">
                Funcionários
            </f:facet>

            <p:column headerText="Ação" width="10%" style="text-align:center">
                <p:commandButton icon="ui-icon-pencil" action="funcionario-edicao">
                    <f:setPropertyActionListener target="#{funcionarioControlador.funcionarioEditar}" value="#{funcionarioRegistro}" />
                </p:commandButton>
            </p:column>

        </p:dataTable>

    </h:form>
</ui:define>
    <ui:define name="body">
    <h:form id="formFuncionarioEdicao">

        <p:panel header="Edição de Funcionários">
            <p:panelGrid columns="2">
                <p:outputLabel      value="Nome" />
                <p:inputText        value="#{funcionarioControlador.funcionarioEditar.nomeFuncionario}"/>

                <p:outputLabel      value="Matrícula" />
                <p:inputText        value = "#{funcionarioControlador.funcionarioEditar.matriculaFuncionario}"/>

            </p:panelGrid>

            <p:spacer width="0" height="50" />

            <p:commandButton 
                value="Salvar"
                actionListener="#{funcionarioControlador.persistirFuncionario}"/>
        </p:panel>

    </h:form>
</ui:define>

...
Funcionários
在我的控制器(FunctionarioControlADOR)中,我有:

@ManagedBean
@请求范围
公共类函数控件{
私有列表功能主义者;
私人Functionario FunctionarioEditar;
@ManagedProperty(“#{funcialiodao}”)
私有函数;
公共无效pesquisarFuncionario(){
Functionarioista=Functionariodao.pesquisaFunctionariosavornomematriculasituacao(…);
}
@施工后
公共void init(){
pesquisarFuncionario();
}
public void persistirFunctionario(){
Functionariao.PersistirFunctionario(FunctionarioEditar);
}
公共列表GetFunctionariosta(){
回归函数论者;
}
public void setfuncialiodao(funcialiodao funcialiodao){
this.funcialiodao=funcialiodao;
}
公共函数GetFunctionarioEditar(){
返回函数ioeditar;
}
public void setFunctionarioEditar(Functionario FunctionarioEditar){
this.funcionaloeditar=funcionaloeditar;
}
}
好的。。。因此,当我按下funcionario-pesquisa.xhtml中的commandButton时,我将进入funcionario-edicao.xhtml,显示它的一些属性。。。 functionario-edicao.xhtml在h:form中有另一个primeFaces commandButton

<ui:define name="body">
    <h:form id="formFuncionarioPesquisa">

        ...

        <p:dataTable 
            id="funcionarioListaId"
            var="funcionarioRegistro" 
            value="#{funcionarioControlador.funcionarioLista}">

            <f:facet name="header">
                Funcionários
            </f:facet>

            <p:column headerText="Ação" width="10%" style="text-align:center">
                <p:commandButton icon="ui-icon-pencil" action="funcionario-edicao">
                    <f:setPropertyActionListener target="#{funcionarioControlador.funcionarioEditar}" value="#{funcionarioRegistro}" />
                </p:commandButton>
            </p:column>

        </p:dataTable>

    </h:form>
</ui:define>
    <ui:define name="body">
    <h:form id="formFuncionarioEdicao">

        <p:panel header="Edição de Funcionários">
            <p:panelGrid columns="2">
                <p:outputLabel      value="Nome" />
                <p:inputText        value="#{funcionarioControlador.funcionarioEditar.nomeFuncionario}"/>

                <p:outputLabel      value="Matrícula" />
                <p:inputText        value = "#{funcionarioControlador.funcionarioEditar.matriculaFuncionario}"/>

            </p:panelGrid>

            <p:spacer width="0" height="50" />

            <p:commandButton 
                value="Salvar"
                actionListener="#{funcionarioControlador.persistirFuncionario}"/>
        </p:panel>

    </h:form>
</ui:define>

但是当我在funcionario-edicao.xhtml(地址栏仍然是funcionario-pesquisa.xthml,页面正确呈现…正常)时, 按钮不工作……

如果直接转到funcionario-edicao.xhtml(例如,使用菜单),页面将呈现,按钮将工作

我需要一些人谁经历了一些类似的行为或谁知道发生了什么事的帮助


谢谢

将支持bean的作用域更改为其他作用域,如@SessionScoped.changed,相同的行为仍然存在。。。