我有一個包含多個用戶(客戶端1,客戶端2,...)的頁面,我想按下「Salir de reunion」按鈕1)將我重定向到所有客戶端的主頁(http://localhost:8080/FasMe/faces/Public/Inicio.xhtml)。重定向到所有客戶端中的一個頁面(每個客戶端都是SessionScoped ManagedBean)
每個客戶端都是SessionScoped ManagedBean。
我只得到重定向到用戶(客戶端)按下按鈕的網頁(/Public/Inicio.xhtml)。 我想在所有客戶端(瀏覽器)上執行重定向。我該怎麼辦?
ReunionActiva.xhtml
<h:panelGrid id="reunionPanel" columns="2" >
<h:commandButton value="Salir de Reunion" styleClass="btn" action="#{reunionBean.salirReunion}" ></h:commandButton>
</h:panelGrid>
我的按鈕 「退出會議」 的商業邏輯是:
ReunionManagedBean.java @ManagedBean(name = 「usuarioBean」)
public String salirReunion(){
Cuenta ctaCoordinador=participanteF.getCuentaReunion(reu, reuF.getCoordinadorReunion(reu.getIdReunion()));
Cuenta ctaParticipante=ctaF.getCuentaByUsuario(usuarioActualBean.getCurrent(), ctaCoordinador.getServidorTareas());
// If user is ADMIN then I want to delete all user of meeting and close de Meeting
if(ctaCoordinador.getId().equals(ctaParticipante.getId())){
Calendar cal = Calendar.getInstance();
reu.setFechaFin(cal.getTime());
reu.setEstado("Cerrada"); // It´s meaning setStatus CLOSE
reuF.modificacionReunion(reu);
List<CuentaHasReunion> p=participanteF.getAllParticipantes(reu);
for (Object element : p) {
CuentaHasReunion part= (CuentaHasReunion) element;
participanteF.bajaParticipante(part); //Here I delete all user from meeting
// Here is where I need to do the redirect to all Clients (Client1 , Client2)
}
ReunionSingleton.eliminarReunionActiva(reu);
}
// If user isn't ADMIN then I only delete user who click the button "salir reunion"
else{
participanteF.bajaParticipante(participanteF.getParticipante(ctaParticipante, reu));
}
return "/Public/Reunion.xhtml?faces-redirect=true";
}
在普通的JSF2/Ajax中,定期調用組件/ ajax調用來檢查會議是否仍處於活動狀態,如果不是,會導致重定向。在Primefaces中,有一個組件實現了這個功能,並將其呈現爲「從服務器向瀏覽器發送消息」,但我不記得它的名稱,也沒有使用它。 – SJuan76