tenho uma Página xhtml a principio usando jsf 2.0 + primefaces 2.2
Surge uma duvida que estou a 2 dias parado nisso, tenho 1 página com 2 ManagerBeans ou seja
PageList.xhtml
Nela contem meu Managerbean:
@ManagedBean(name=“clienteController”) @SessionScoped
public class ClienteController implements Serializable{
}
até aí tudo bem, o problema é que minha página tem uns includes por exemplo:
<ui:include src=“includes/editarEnderecoCliente.xhtml” />
nesta Página já contem outro ManagerBean
@SuppressWarnings(“serial”) @ManagedBean(name=“enderecoController”) @SessionScoped
public class EnderecoController implements Serializable{
}
tentei os 2 com Scopo Session , ViewScoped, instalei o Jboss weld para poder utilizar o @ConversationScope
Mas nada adiantou
Quando clico num clique que irá acessar o ManagerBean2 ele ocorre um erro na lista de um DataTable que tenho no ManagerBean1
AVISO: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at javax.faces.component.UIData.setRowIndex(UIData.java:451)
at javax.faces.component.UIData.iterate(UIData.java:1429)
at javax.faces.component.UIData.processDecodes(UIData.java:983)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
só pelo fato de eu abrir uma <p:dialog>
Como consigo deixar os 2 em uma página só , alguem tem uma situação parecida ?
Qualquer coisa será bem vinda
@SuppressWarnings("serial")
@ManagedBean(name="clienteCadastroController")
@SessionScoped
public class ClienteCadastroController implements Serializable{
private ClienteDao clienteDAO = ClienteDao.getInstance();
private Cliente cliente;
private Endereco endereco;
private List<Endereco> enderecos;
@PostConstruct
public void initialize(){
cleanUp();
}
private void cleanUp(){
cliente = new Cliente();
endereco = new Endereco();
enderecos = new ArrayList<Endereco>();
}
/* o Botão NOVO invoca esse método e dá o ERro de Array by /Zero do DataTable da primeiro ManagerBean */
public void prepararAdicionar(ActionEvent actionEvent){
cliente = new Cliente();
endereco = new Endereco();
enderecos = new ArrayList<Endereco>();
}
public void prepararAlterar(Cliente c){
cliente = c;
enderecos = new ArrayList<Endereco>(c.getEnderecos());
}
public void addEndereco(){
enderecos.add(endereco);
endereco = null;
}
Erro ao clicar no botão:
20/01/2011 12:05:36 com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
AVISO: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at javax.faces.component.UIData.setRowIndex(UIData.java:451)
at javax.faces.component.UIData.iterate(UIData.java:1429)
at javax.faces.component.UIData.processDecodes(UIData.java:983)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
at javax.faces.component.UIForm.processDecodes(UIForm.java:216)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:926)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) ......