Используя простые лица, вы можете создать диалог и установить форму для управления тем, что отображается. Пример кода ниже:
public void enterGroup(){
if(!AuthorizationUtils.isUserInRoles(new String[]{"UPDATER"})){
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,
"Error", "The user does not have permissions to perform this
action."));
return;
}
else{
Map<String,Object> options = new HashMap<String, Object>();
options.put("resizable", false);
options.put("draggable", false);
options.put("modal", true);
options.put("width", 500);
options.put("height", 90);
options.put("contentWidth", "100%");
options.put("contentHeight", "100%");
PrimeFaces.current().dialog().openDynamic("entergroup",options,null);
}
}
У меня вопрос: знает ли кто-нибудь, существует ли способ контролировать происходящее, если диалог отключен, а не пользователь, выполняющий действия над диалоговым окном. Я знаю, что вы можете установить для closable значение false и полностью исключить X, но это не совсем удобно для пользователя. Мне просто нужно либо иметь возможность сбросить мою диалоговую форму при нажатии X, либо выполнить метод, который очищает некоторые из моих Бинов, и мне было интересно, есть ли способ сделать это. Это скорее косметика, чем жизненно важно. Любая помощь будет оценена! Я включил xhtml ниже, если это помогает в рисовании картины.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Enter the Name of the new group</title>
<style type="text/css">
.ui-widget {
font-size: 90%;
}
</style>
</h:head>
<h:body>
<div class="main">
<h:form method="post">
<p:panelGrid columns="3" styleClass="ui-noborder">
<p:outputLabel for="newgroupname" value="Group Name: ">
</p:outputLabel>
<p:inputText id="newgroupname" value="#{addgroup.newGroupName}"
/>
<p:commandButton action="#{addgroup.addNewGroup}"
value="Submit"></p:commandButton>
</p:panelGrid>
<h:outputText value="#{addgroup.dialogMessage}" style="color: red;">
</h:outputText>
</h:form>
</div>
</h:body>
</html>