A facesmessage can be displayed in a dynamically generated dialog on runtime.
Documentation<h:form> <p:commandButton value="Show" icon="pi pi-bookmark" action="#{dfView.showMessage}" /> </h:form>
@Named("dfView") @RequestScoped public class DFView { public void viewCars() { Map<String,Object> options = new HashMap<String, Object>(); options.put("resizable", false); PrimeFaces.current().dialog().openDynamic("viewCars", options, null); } public void viewCarsCustomized() { Map<String,Object> options = new HashMap<String, Object>(); options.put("modal", true); options.put("width", 640); options.put("height", 340); options.put("contentWidth", "100%"); options.put("contentHeight", "100%"); options.put("headerElement", "customheader"); PrimeFaces.current().dialog().openDynamic("viewCars", options, null); } public void chooseCar() { Map<String,Object> options = new HashMap<String, Object>(); options.put("resizable", false); options.put("draggable", false); options.put("modal", true); PrimeFaces.current().dialog().openDynamic("selectCar", options, null); } public void onCarChosen(SelectEvent event) { Car car = (Car) event.getObject(); FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Car Selected", "Id:" + car.getId()); FacesContext.getCurrentInstance().addMessage(null, message); } public void showMessage() { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "What we do in life", "Echoes in eternity."); PrimeFaces.current().dialog().showMessageDynamic(message); } }