One column in my PrimeFaces table has a drop down filter. The data from the database for that column is a character field rather than a string, I'd like the information displayed in the drop down filter to be different from the information used. So instead of having "W" on the list, the drop down says "warning"; but when the filter is applied it searches for "W".
Is there an easy way to do that with PrimeFaces (modifying f:selectItems maybe?), or will I have to do some sort of custom filter method?
<p:column filterBy="#{hbel.logFlag}" headerText="Log Flag" filterMatchMode="exact">
<f:facet name="filter">
<p:selectOneMenu onchange="PF('widgetTable').filter()" >
<f:selectItem itemLabel="Choose" itemValue="#{null}" noSelectionOption="true" />
<f:selectItems value="#{homeController.flags}" />
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{hbel.logFlag}" />
</p:column>
which points to the following in the homeController.java class
private final static String[] flags;
static
{
flags = new String[4];
flags[0] = "B";
flags[1] = "R";
flags[2] = "T";
flags[3] = "W";
}