다음 XHTML 코드 (PrimeFaces 5.0 final 관련)가 제공됩니다. 데이터 테이블 필터의 새로운 변경 사항은 here으로 볼 수 있습니다.PrimeFaces 5.0의 데이터 테이블 필터에서 변환기 사용
<p:dataTable id="dataTable" var="row" value="#{testManagedBean}"
lazy="true"
rowKey="#{row.transporterId}"
widgetVar="dataTableUIWidget">
<p:column id="id" headerText="Id" sortBy="#{row.transporterId}">
<h:outputText value="#{row.transporterId}"/>
</p:column>
<p:column id="transporter" headerText="Transporter" filterBy="#{row.transporterName}">
<f:facet name="filter">
<p:inputText onkeyup="PF('dataTableUIWidget').filter();"/>
</f:facet>
<h:outputText value="#{row.transporterName}"/>
</p:column>
</p:dataTable>
다음은 문자열에서 선행 및 후행 공백을 다듬는 faces 변환기입니다.
@FacesConverter(forClass=String.class)
public final class StringTrimmer implements Converter
{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return value != null ? value.trim() : null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return (String) value;
}
}
이 변환기는 데이터 테이블에 규정 된 (이미인가되는 다른 UI 구성 요소를 포함 ) 형 스트링의 모든 필터에 전체적으로 적용 할 수 있을까?
<f:facet name="filter">
<p:inputText onkeyup="PF('dataTableUIWidget').filter();"/>
</f:facet>
또는 내가 좋아하는 주석을 가질 컨버터 클래스를 수정해야
@ManagedBean
@RequestScoped
public final class StringTrimmer implements Converter
{
//...
}
다음과 같이 질문의 모든 필터를 수동으로 컨버터를 적용,
<f:facet name="filter">
<p:inputText onkeyup="PF('dataTableUIWidget').filter();" converter="#{stringTrimmer}"/>
</f:facet>
수 이 변환기는 어떻게 든 모든 문자열 유형 필터에 대해 converter="#{stringTrimmer}"
을 명시 적으로 지정할 필요가 없도록 전역 적으로 적용됩니까?
문제는 JSF보다는 PrimeFaces와 더 관련이 있어야한다.
매우 정확한 대답입니다. 고맙습니다! – Tiny
반갑습니다. – BalusC