我是 JSF 的新手。当单击项目列表框时,我尝试使用 FacesContext 消息显示消息。在这种情况下,我试图在呈现的列表框为空时显示一条消息。
我试图将“更新”属性放在 selectManyListbox 中,但它不起作用。
xhtml代码的一部分:
<h:outputLabel value="Category" />
<h:selectManyListbox id="x1CategorySelectOneMenu" value="#{x1.selectedCategories}" valueChangeListener="#{x1n.categoryChanged2}" required="true" requiredMessage="Category is required" size="10">
<f:selectItems value="#{x1.categories}" var="category" itemLabel="#{category}" itemValue="#{category}"/>
<f:ajax event="valueChange" render="x1SelectOneMenu"/>
<f:ajax event="valueChange" listener="#{x1.categoryChanged2}" render="msgs" execute="@this"/>
<!-- f:ajax render="msgs" / -->
</h:selectManyListbox>
<p:messages id="msgs" showDetail="true"/>
<h:outputLabel id="x1IdLabel" value="Machine" />
<h:selectManyListbox id="x1SelectOneMenu" immediate="true" value="#{x1.selectedResources}" required="true" requiredMessage="Machine is required" size="10" >
<f:selectItems value="#{x1.strResourceIdList}" var="machine" itemLabel="#{strResourceIdList}" itemValue="#{strResourceIdList}" />
</h:selectManyListbox>
Java代码的一部分:
public void categoryChanged2(ValueChangeEvent event) throws Throwable {
if(strResourceIdList.isEmpty())
{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info","There is no Resource available in this Category"));
return;
}
}
任何帮助表示赞赏!