Как отобразить навигационную панель (основные лица) при успешном входе в систему (JSF 2.0) - PullRequest
0 голосов
/ 01 января 2012

Я хотел бы показать панель навигации при успешном входе в JSF 2.0.Вот часть моего login.xhtml файла.Панель навигации является компонентом Primefaces, который вы можете увидеть здесь .

Как видите, панель навигации можно отобразить, вызвав метод topBar.show() Но как я могу вызвать его послеЯ получил успешный логин?

  <h:form>
    <p:messages showDetail="false" />
    <h:panelGrid columns="2">
      <h:outputLabel for="pseudo" value="#{i18n.Pseudo}" />
      <h:inputText id="pseudo" label="#{i18n.Pseudo}" required="true" value="#{loginController.grimpeur.login}"
        maxlength="128" />
      <h:outputLabel for="password" value="#{i18n.Password}:" />
      <h:inputSecret id="password" value="#{loginController.grimpeur.password}" />
    </h:panelGrid>
    <h:commandButton type="submit" action="#{loginController.processLogin}" value="#{i18n.Ok}" />
    <h:commandButton type="button" value="#{i18n.Password_forgotten}" onclick="dlg.show();" />
  </h:form>

  <p:notificationBar position="top" effect="slide" widgetVar="loginBar" styleClass="top">
    <h:graphicImage value="#{loginController.grimpeur.login}/#{loginController.grimpeur.avatar}" width="80" height="70"
      title="avatar" />
    <h:outputFormat id="logged_in_msg" value="#{i18n.Welcome_logged_in_user}" style="color:#FFCC00;font-size:36px;">
      <f:param value="#{loginController.grimpeur.login}" />
      <f:param value="#{i18n.Climbing}" />
    </h:outputFormat>
  </p:notificationBar>

1 Ответ

3 голосов
/ 01 января 2012

Я думаю, что вы можете достичь этого с PrimeFaces v3.0.RC2 RequestContext .Должно быть что-то вроде этого:

<p:notificationBar widgetVar="bar">  
    <h:outputText value="You have successfully log in!" />  
</p:notificationBar>

<p:commandButton type="submit" actionListener="#{loginController.processLogin}" 
                 value="#{i18n.Ok}" />

@ManagedBean
@RequestScoped
public class LoginController {
   public void processLogin(ActionEvent actionEvent) { 
      boolean successful;
      // process your login here

      if (successful) {
         RequestContext context = RequestContext.getCurrentInstance();
         context.execute("bar.show();"); 
      }
   }
}
...