为什么通知栏不起作用



我在我的应用程序中使用primefaces通知栏。我希望它在用户登录并被重定向到一个名为main. xml的页面时出现我正在试着去做,但我不知道为什么我不能让它出现。

这是一个位于托管bean中的方法,当在名为login.xhtml:

的页面上单击login按钮时,该方法执行重定向。
@ManagedBean
@RequestScoped
public class SecurityController {
    @EJB
    private IAuthentificationEJB authentificationEJB;
    public String logIn() {
            if (authentificationEJB.saveUserState(email, password)) {
                // Pass a parameter in ussing the URL.(The notification bar will
                // read this parameter)
                return "main.xhtml?faces-redirect=true&login=1";
            } else {
                return null;
            }
        }

这是一个按钮,用户点击它登录到一个名为login.xhtml的页面

<h:commandButton value="Login" action="#{securityController.logIn()}"/>

这是用户登录时到达的页面(main.xhtml):

<ui:composition template="WEB-INF/templates/BasicTemplate.xhtml">
    <ui:define name="mainForm">
        <h2>The main page</h2>
        <!-- Why this dont work? -->
        <script type="text/javascript">
          jQuery(function() {
          topBar.show()
           });
         </script>
        <!-- It is possible to change font -->
        <p:notificationBar id="notbar" position="top" widgetVar="topBar" styleClass="top" rendered="#{param.login == '1'}">
            <h:outputText value="Welcome, you are now logged in!"
                style="color:#FFCC00;font-size:36px;" />
        </p:notificationBar>
    </ui:define>
   </ui:composition>

在URL中,我可以看到login=1,但是当用户到达main.xhtml时,通知栏没有出现。

我怎样才能使它出现?另外,你知道我怎么能让它消失与褪色效果后3秒?

将脚本放在</p:notificationBar>之后,因为如果在通知栏之前编写脚本,则在加载时不会找到DOM。

要让它消失只需调用topBar.hide() setTimeOut()

相关内容

  • 没有找到相关文章

最新更新