首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据sticky>动态更改<p:growl属性

根据sticky>动态更改<p:growl属性
EN

Stack Overflow用户
提问于 2014-09-29 10:58:22
回答 1查看 3.2K关注 0票数 2

下面是PrimeFaces展示的关于<p:growl> tag.In的示例代码--这个例子,当您单击"Save“按钮时,会出现两条消息,即”成功“和"SecondMessage”。

这个链接就是我说的。

这是PrimeFaces展示的示例代码

代码语言:javascript
复制
<h:form> 
    <p:growl id="growl" showDetail="true" sticky="true" />  

    <p:panel header="Growl">  
        <h:panelGrid columns="2" cellpadding="5">  
            <p:outputLabel for="msg" value="Message:" />   
            <p:inputText id="msg" 
                         value="#{growlView.message}" 
                         required="true" />  
        </h:panelGrid>  

        <p:commandButton value="Save" 
                         actionListener="#{growlView.saveMessage}" 
                         update="growl" />  
    </p:panel> 
</h:form>

还有一次来自PrimeFaces Showcase的bean PrimeFaces。

代码语言:javascript
复制
@ManagedBean
public class GrowlView {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void saveMessage() {
        FacesContext context = FacesContext.getCurrentInstance();

        context.addMessage(null, new FacesMessage("Successful",  "Your message: " + message) );
        context.addMessage(null, new FacesMessage("Second Message", "Additional Message Detail"));
    }
}

我的问题是,如何使“成功”消息的sticky=true,第二消息的sticky=false?

如果关闭第一个咆哮,第二个咆哮的位置没有改变,那么我试着用两个<p:growl>标记(改变第二个咆哮的位置)和sticky.But (如果关闭第一个咆哮)来实现这一点,就像PrimeFaces展示例子那样。

EN

回答 1

Stack Overflow用户

发布于 2014-09-29 13:58:35

这是修改后的示例代码:

代码语言:javascript
复制
<h:form id="growlForm">
    <p:growl id="growl1" showDetail="true" sticky="true" />
    <p:growl id="growl2" showDetail="true" sticky="false" />

    <p:panel header="Growl">
        <h:panelGrid columns="2" cellpadding="5">
            <p:outputLabel for="msg" value="Message:" />
            <p:inputText id="msg" value="#{growlView.message}"
                required="true" />
        </h:panelGrid>

        <p:commandButton value="Save"
            actionListener="#{growlView.saveMessage}" update="growl1 growl2" />
    </p:panel>
</h:form>

saveMethod:

代码语言:javascript
复制
public void saveMessage() {
    FacesContext context = FacesContext.getCurrentInstance();

    context.addMessage("growlForm:growl1", new FacesMessage("Successful",  "Your message: " + message) );
    context.addMessage("growlForm:growl1", new FacesMessage("Second Message", "Additional Message Detail"));

    context.addMessage("growlForm:growl2", new FacesMessage("Successful 2",  "Your message: " + message) );
    context.addMessage("growlForm:growl2", new FacesMessage("Second Message 2", "Additional Message Detail"));
}

我在这个箱子里发现了一些奇怪的东西。开始时,两个咆哮都在saveMethod中添加了四条消息。一段时间后(6秒,life属性的默认值),来自growl1的所有消息都会像预期的那样消失。

我不知道为什么这两个咆哮最后各有4条信息。我已经搜索了现有的咆哮问题,并看到了一个与倍数生长相关的问题。

看看生成的html。你有同样的东西吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26098279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档