Как изменить вывод текста условно
У меня есть таблица поставщиков с колонкой gst_invoice_type
, Таблица имеет две строки, со значениями F и S.
В моей таблице данных PrimeFaces я также создал таблицу со столбцом Gst_Invoice_Type
с выпадающим меню фильтра, как показано ниже код
<p:column filterBy="#{vo.gstInvoiceType}" headerText="GST Invoice Type." sortBy="#{vo.gstInvoiceType}"
style="width:130px;" visible="false">
<f:facet name="filter">
<p:selectOneMenu style="width:110px; vertical-align:middle;" autoWidth="false"
onchange="PF('varTable').filter()">
<f:selectItem itemLabel="ALL" itemValue="" noSelectionOption="true" />
<f:selectItem itemLabel="Full Tax Invoice" itemValue="F" />
<f:selectItem itemLabel="Simplified Invoice" itemValue="S" />
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{vo.gstInvoiceType}"/>
</p:column>
Когда выбрано Все, все данные (F и S) будут извлечены и расположены в Gst_Invoice_Type, который работает правильно. Но возможно ли, чтобы F и S отображались как полный налоговый счет и упрощенный счет?
1 ответ
Решение
Просто вставьте две условно визуализированных <h:outputText />
элементы с разными значениями.
<p:column>
<h:outputText
value="Full Tax Invoice"
rendered="#{vo.gstInvoiceType eq 'F'}"
/>
<h:outputText
value="Simplified Invoice"
rendered="#{vo.gstInvoiceType eq 'S'}"
/>
</p:column>
Другим вариантом является программное сопоставление в методе bean-компонента:
<p:column>
<h:outputText value="#{bean.map(vo.gstInvoiceType)}" />
</p:column>
с
public class Bean {
public String map(String input) {
// however you implement your mapping
}
}