我想通过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>