Enviando formulário com P: CommandButton JSF
-
27-09-2019 - |
Pergunta
Eu tenho uma pergunta sobre o envio do conteúdo do formulário com p:commandbutton
Isso tende a trabalhar da maneira Ajax.
Se eu tiver um código como este:
<f:verbatim rendered="#{myBean.constructor}"></f:verbatim >
<h:form prependId="false">
....
.....
<p:commandButton value="#{msg.Add_Parameter_Set}" update="addParameterSetPnl,msgs" action="#{myBean.initNewParametersSet}"/>
</h:form>
Ao enviar o formulário com o botão de comando, o método GetContutor de F: literalmente será chamado (eu atualizo diferentes partes do formulário)? Como posso impedir que seja chamado?
Eu pensei que enviar um formulário, apenas renderiza o conteúdo do formulário / o conteúdo que foi especificado por update
parâmetro..
Solução
Não deve prejudicar. Se você está fazendo coisas caras lá, deve mover isso para o construtor, @PostConstruct
ou método de ação do feijão em questão ou introduza carregamento preguiçoso ou farejamento de fase.
// In Constructor..
public Bean() {
constructed = getItSomehow();
}
// ..or @PostConstruct..
@PostConstruct
public void init() {
constructed = getItSomehow();
}
// ..or action method..
public String submit() {
constructed = getItSomehow();
return "outcome";
}
// ..or lazy loading..
public boolean getConstructed() {
if (constructed == null) constructed = getItSomehow();
return constructed;
}
// ..or phase sniffing (this one updates during render response only).
public boolean getConstructed() {
if (FacesContext.getCurrentInstance().getRenderResponse()) constructed = getItSomehow();
return constructed;
}
Veja também
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow