- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 primefaces 的 JSF 页面,我想使用 p:messages 作为输入验证的消息,并使用 Growl 元素来处理其余的内容,例如通知、错误......
目前,我有一个具有 for 属性的咆哮,并且我正在使用该 for 属性发送通知。
问题是我不知道必须将哪个 for 属性放入 p:messages 组件中。如果我将其保留为空,则通知消息将显示在 Growl 和 p:messages 中。
在这里您可以看到我的 JSF 示例。
<p:growl id="growlNotifyNewReg" for="growlNotificationsNewRegister"
showSummary="true"
showDetail="true"
autoUpdate="true"/>
<h:outputText value="Validado"/>
<p:selectBooleanCheckbox id="checkValidado" value="#{}" required="true"/>
<h:outputText value="Temperatura (ºC)"/>
<p:inputText id="Temperatura" value="#{}" required="true">
<f:validateDoubleRange minimum="-50" maximum="60" />
<f:convertNumber maxFractionDigits="1" />
</p:inputText>
<!-- Other inputs... -->
<p:messages showSummary="true" showDetail="true" redisplay="false"/>
当我想发送通知时,我喜欢这样。
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, "summary", "details");
FacesContext.getCurrentInstance().addMessage("growlNotificationsNewRegister", facesMsg);
这段代码不仅向 Growl 组件发送消息,而且还向 messages 组件发送消息,因为它没有 for 属性。我想知道必须在消息组件中放入哪个属性才能仅显示表单的验证消息。
正如你所看到的,我将 redisplay 属性设置为 false。我可以在 p:messages 的 for 属性中放入多个 id 吗?
最佳答案
这是一个按照您想要的方式工作的示例,您可以根据您的代码更改它:
在 .xhtml
<h:form prependId="false">
<p:growl id="growl" for="msg" 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" />
<p:outputLabel for="msg2" value="Message2:" />
<p:inputText id="msg2" value="#{growlView.message2}" required="true" />
</h:panelGrid>
<p:commandButton value="Save" actionListener="#{growlView.saveMessage}" update="growl" />
</p:panel>
<p:messages id="messages" for="msg2" showDetail="true" autoUpdate="true" closable="true" />
</h:form>
在 for
两者的属性<p:growl>
和<p:messages>
您可以添加任何您想要的 Id,就像 for="id1 id2 .."
在 bean 中
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
@ManagedBean
public class GrowlView {
private String message;
private String message2;
// setters / getters
public void saveMessage() {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, "summary", "details");
FacesContext.getCurrentInstance().addMessage("msg", facesMsg);
}
}
关于jsf - Primefaces 消息用于验证,其余部分则咆哮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28954413/
我正在使用 kartik growl,我想通过 ajax success 显示 growl 我试过了 这是javascript代码: $.post({ url: "forwardpr", // y
我有以下代码(缩短以留下要点): class Strange(): def setter(self, val): self._val = val val = prop
我是一名优秀的程序员,十分优秀!