【问题标题】:I want to have different warning messages on select of radio buttons in JSF我想在 JSF 中选择单选按钮时有不同的警告消息
【发布时间】:2015-06-13 09:55:37
【问题描述】:

我有一个场景,其中有多个单选按钮用于不同的状态,例如 ActiveInactivePending

如果我将状态从活动更改为非活动,它应该会弹出一条警告消息。同样,在选择其他单选按钮时,它应该有不同的警告消息。

radioButtons 获取为ListofStatus

    <h:selectOneRadio id="statusList" value="#{Bean.billProgram.billProgramStatus}">
            <f:selectItems value="#{Bean.statusList}" />
    </h:selectOneRadio>

任何想法如何做到这一点。我是 JSF 的新手。我在 JS 中尝试过,但没有奏效。或许会在ManagedBean这边完成。

【问题讨论】:

  • 您在哪里显示消息 - &lt;h:message(s)&gt;?您是在谈论不同的严重程度吗?您可以定义不同的严重级别,例如FacesMessage.SEVERITY_INFOFacesMessage.SEVERITY_WARNFacesMessage.SEVERITY_ERRORFacesMessage.SEVERITY_FATAL,如果需要,您还可以覆盖特定的 CSS 类,例如 infoClasswarnClasserrorClassfatalClass同样,对应的样式如infoStylewarnStyleerrorStylefatalStyle

标签: jsf jsf-2


【解决方案1】:

为此在 selectOneRadio 上进行 ajax 调用。在那个 ajax 监听器上,你可以添加 FacesMessage

为此,您可以使用primefaces。这里是reference link

xhtml:

<p:growl id="growl" showDetail="true" sticky="true" />  

<h:selectOneRadio id="statusList" value="#{Bean.billProgram.billProgramStatus}">
    <f:selectItems value="#{Bean.statusList}" />
    <p:ajax event="valueChange" update="growl" listener="#{listenerView.someMethod}" />
</h:selectOneRadio>

支持 bean

public void someMethod(AjaxBehaviorEvent event) {        
    FacesContext context = FacesContext.getCurrentInstance();  
    if(billProgram.billProgramStatus.equalIgnoreCase("Active")){               
        context.addMessage(null, new FacesMessage("Active",  "Active Detail") );     
    } else if(billProgram.billProgramStatus.equalIgnoreCase("Inactive")){
        context.addMessage(null, new FacesMessage("Inactive", "Inactive Detail"));
    }
}

【讨论】:

  • 感谢您的回答,但下次请多花一点时间来正确格式化。
  • 旧的点击值会在bean中,但是如何保留新的点击值?
  • 每当您点击新值时,它都会自动更新为新值,当您在 bean 上看到时,它将是新值。
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 2017-07-24
相关资源
最近更新 更多