Я отправляю некоторые переменные со страницы .xhtml на контроллер, который отправляет данные на другую страницу, на которой есть другой контроллер, который обрабатывает данные этой страницы, которые я пытался использовать с помощью методов установки и получения.
проблема в том, что я не знаю, что делать с @ PostConstruct.
XHTML файл
<h:form id="frmStart">
<p:growl id="growl" sticky="true" showDetail="true" />
<p:panel id="pnlDatos">
<p:dataTable id="tblObjeto" var="object"
value="#{parentControlador.listObjects}"
widgetVar="tblObjeto"
emptyMessage="No hay datos">
<f:facet name="header">
Objetos
</f:facet>
<p:column headerText="Contar" width="20">
<p:commandButton class="pi pi-list" id="openDialogContar" value="Ver"
action="#{parentControlador.FindItems(object)}"
/>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
Код контроллера ParentControlador
@Inject Item item;
public String FindItems(ObjectParent objectParent) {
String type="";
String result="";
//variable that i am going to send
ItemControlador itemControlador = new ItemControlador();
itemControlador.setCorte(objectParent);
try {
if(item.listarItemsA(objectParent.getCorte_id()).isEmpty()){
this.listaItems = item.listarItemsB(objectParent.getCorte_id());
type = "A";
}else{
this.listaItems = item.listarItemA(objectParent.getCorte_id());
type = "B";
}
this.objeto = objectParent;
result = type == "A"? "A.xhtml":"B.xhtml";
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
"The objectParent doesnt have items "+e.getMessage()));
}
return result;
}
Это контроллер, который обрабатывает представление для «A.xhtml», «B.xhtml» Item
@PostConstruct
private Parent parent;
public void init() {
//From what i see, thos is ejecuted when a .xhtml page is using the controller to retrieve the dataTable
//
if(item.listarItemsB(objectParent.getCorte_id()).isEmpty()){
this.listaObjetos = item.listarItemA(objectParent.getCorte_id());
}else{
this.listaObjetos = item.listarItemsA(objectParent.getCorte_id());
}
}
public Parent getCorte() {
return corte;
}
public void setCorte(Parent parent) {
this.parent = parent;
}
как отправить данные из представления xhtml, которое обрабатывает один контроллер X для просмотра данных, отправить на другую страницу xhtml, которая использует другой контроллер Y,
и показать на другой странице, которая использует Y-контроллер для просмотра данных отправленных данных.