如何使用@RequestScoped将数据传递到另一个表单

时间:2018-04-26 17:34:45

标签: jsf primefaces

我想通过p:commandButton使用@RequestScoped将数据传递给表单但是当我使用@RequestScoped时,表单打开为空它在我使用@SessionScoped时才有效。 我正在使用editarRegistro方法打开另一个表单。 有人知道如何使用@RequestScoped来做到这一点? 我已经尝试了很长时间了,但是当我使用@SessinScoped

时就会发生这种情况
        <h:form id="form-principal">
        <h:outputStylesheet library="css" name="cadastro.css"/>  
        <h:outputScript library="js" name="script.js"/> 
        <p:toolbar>
                <f:facet name="left">
                    <p:growl id="messages" showDetail="true" />  
                    <p:commandButton value="Inserir Novo" action="#{contaBancariaBean.novo()}" icon="ui-icon-plus" update="@all"/>                          
                </f:facet>
        </p:toolbar>          
        <p:carousel value="#{contaBancariaBean.contasBancarias}" headerText="Contas Bancárias" var="contaBancaria" itemStyle="text-align:center" responsive="true">
        <p:panelGrid columns="2" style="width:100%;margin:10px 0px" columnClasses="label,value" layout="grid" styleClass="ui-panelgrid-blank">
            <h:outputText value="ID:"/>
            <h:outputText value="#{contaBancaria.id}"/>                
            <h:outputText value="Banco:"/>
            <h:outputText value="#{contaBancaria.banco}"/>                
            <h:outputText value="Descrição Conta:"/>
            <h:outputText value="#{contaBancaria.descricao}"/>
            <f:facet name="footer">
            <p:commandButton action="#{contaBancariaBean.editarRegistro()}" icon="ui-icon-search">
                    <f:setPropertyActionListener value="#{contaBancaria}" target="#{contaBancariaBean.contaBancaria}" />
            </p:commandButton>
            </f:facet>
        </p:panelGrid>  
        <f:facet name="footer">
            Foram encontrados #{contaBancariaBean.contasBancarias.size()} contas bancárias.
        </f:facet>   
        </p:carousel>
    </h:form>

ManagedBean

@RequestScoped
public class ContaBancariaBean extends BaseBean implements Serializable {

    private ContaBancaria contaBancaria;
    private List<ContaBancaria> contasBancarias;

    @ManagedProperty("#{contaBancariaService}")
    private ContaBancariaService service;

    //Método que inicializa os campos da classe
    @PostConstruct
    public void init() {

        contaBancaria = new ContaBancaria();
        contasBancarias = getService().getContasBancarias();
    }

    //Getters e Setters
}

//Método que retorna o cadastro para a edição
public String editarRegistro() {

    return "/visualizacao-cadastros/contabancaria?faces-redirect=true"
}

第二页

<h:form id="form">
            <p:fieldset id="panelPrincipal" legend="Principal">
                <p:panelGrid columns="6" columnClasses="centered" >
                    <p:outputLabel for="filial" value="Filial"/>
                    <p:selectOneMenu id="filial" value="#{contaBancariaBean.contaBancaria.filial}" required="true" requiredMessage="O campo filial é obrigatório">
                        <f:selectItems value="#{filialBean.filiais}" var="filial"
                                       itemValue="#{filial}" itemLabel="#{filial.nome}"/>
                        <p:message for="filial"/>

                    </p:selectOneMenu>
                    <p:outputLabel for="descricao" value="Descrição"/>
                    <p:inputText id="descricao" value="#{contaBancariaBean.contaBancaria.descricao}" size="30" required="true" requiredMessage="O campo descrição é obrigatório">
                        <p:message for="descricao"/>
                    </p:inputText>
                    <p:outputLabel for="banco" value="Banco"/>
                    <p:selectOneMenu id="banco" value="#{contaBancariaBean.contaBancaria.banco}" required="true" requiredMessage="O campo Banco é obrigatório">
                        <f:selectItems value="#{listaBean.padraoBanco}" var="banco"
                                       itemValue="#{banco.valor}" itemLabel="#{banco.valor}" />
                        <p:message for="filial"/>
                    </p:selectOneMenu>
                    <p:outputLabel for="agencia" value="Agência" />
                    <p:inputText id="agencia" value="#{contaBancariaBean.contaBancaria.agencia}" required="true" requiredMessage="O campo Agência é obrigatório">               
                        <p:message for="agencia"/>
                    </p:inputText>
                    <p:outputLabel for="digito" value="Digíto" />
                    <p:inputText id="digito" value="#{contaBancariaBean.contaBancaria.digito}" size="10" required="true" requiredMessage="O campo Digíto é obrigatório">               
                        <p:message for="digito"/>
                    </p:inputText>
                </p:panelGrid>
            </p:fieldset>
            <p:outputLabel class="auditoria" value="#{contaBancariaBean.exibirAuditoria(contaBancariaBean.contaBancaria)}"/>  
        </h:form>

0 个答案:

没有答案