【发布时间】:2014-11-11 17:42:40
【问题描述】:
这是我在论坛上的第一篇文章。 我有一个带有标识符(值)和描述(文本)的 Java 枚举类。
CriteriExlusio.java:
public enum CriteriExclusio{
C1(1, "< 10"),
C2(2, "Low grade"),
C3(3, "Medium grade"),
C4(4, "High grade"),
C5(5, "> 250"),
private final int value;
private final String text;
private CriteriExclusio(int value, String text) {
this.value = value;
this.text = text;
}
public int getValue() { return value; }
public String getText() { return text; }
}
还有控制器:
@Named(value = "auxCriteriExclusioController")
@ApplicationScoped
public class AuxCriteriExclusioController {
public CriteriExclusio[] getCriteriExclusio(){
return CriteriExclusio.values();
}
}
当我提交表单时,我在 selectonemenu 中正确加载了 values-text 并存储在 table (values-int) 中。
.xhtml
<h:selectOneMenu value="#{mbVCriteriExclusio.criteriExclusio.idCriteriExclusio}" id="cmbCriteriExclusio" required="true">
<f:selectItem itemLabel="" itemValue=""></f:selectItem>
<f:selectItems value="#{auxCriteriExclusioController.criteriExclusio}" var="respuestaCriterisExclusio" itemValue="#{respuestaCriterisExclusio.value}" itemLabel="#{respuestaCriterisExclusio.text}" />
</h:selectOneMenu>
问题是当页面检索表中的数据时,我想在输出标签中显示文本(文本),该标签对应于存储在数据库中的值(值)。它更加用户友好,需要显示文本而不是数值。
我已经搜索并尝试了几个选项,但我无法检索文本。只恢复java枚举的C1、C2....等。
<p:outputLabel value="#{auxCriteriExclusioController.criteriExclusio[itemCriterisExclusio.idCriteriExclusio]}" />
例如如果在表格中保存了值3,则要显示的标签是“中等等级”
更新。数据表代码
<h:form id="frmExclos">
<p:growl id="mensajeGeneral3" sticky="false" showDetail="true"/>
<p:panel id="pnlCriteriExclusio" style="width: 425px" header="Criteris d'exclusió del pacient" widgetVar="pnlCriterisE">
<p:dataTable id="tblCriterisExclusioNia" var="itemCriterisExclusio" value="#{mbRCriteriExclusio.getCriterisExclusioNia(mbVMalignitatNia.personaAmbMalignitatNia.id)}" editable="true">
<p:ajax event="rowEdit" listener="#{mbRCriteriExclusio.onRowEdit}" update=":frmExclos:mensajeGeneral3" />
<p:ajax event="rowEditCancel" listener="#{mbRCriteriExclusio.onRowCancel}" update=":frmExclos:mensajeGeneral3" />
<p:column headerText="Criteri">
<p:cellEditor>
<f:facet name="output">
<p:outputLabel value="#{itemCriterisExclusio.idCriteriExclusio}">
<f:converter converterId="criteriExclusioConverter"/>
</p:outputLabel>
</f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{itemCriterisExclusio.idCriteriExclusio}" id="cmbCriteriExclusioEditat" required="true">
<f:selectItem itemLabel="" itemValue=""></f:selectItem>
<f:selectItems value="#{auxCriteriExclusioController.criteriExclusio}" var="respuestaCriterisExclusioEditar" itemValue="#{respuestaCriterisExclusioEditar.value}" itemLabel="#{respuestaCriterisExclusioEditar.text}" />
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Observacions">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{itemCriterisExclusio.comentaris}"></h:outputText></f:facet>
<f:facet name="input"><p:inputText value="#{itemCriterisExclusio.comentaris}" label="Observacions"></p:inputText></f:facet>
</p:cellEditor>
</p:column>
<p:column style="width:32px">
<p:rowEditor />
</p:column>
<f:facet name="footer" >
<p:commandButton update="@this" icon="ui-icon-plusthick" value="Afegir criteri" oncomplete="PF('dlgAddCriterisExclusio').show()"/>
</f:facet>
</p:dataTable>
</p:panel>
</h:form>
【问题讨论】:
-
你没有错过 outputlabel EL 值中的 'text' 属性吗?尝试使用此
-
我试过了,它没有正确链接文本值..还是谢谢..