2014-02-02 1 views
1

У меня есть DataTable для телефона что-то вроде:Как проверить список <Object> в Primefaces DataTable - JSF

<p:dataTable value="#{billingInfoBean.billingProfile.payer.phones}" var="phone" id="payerPhoneTable"> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Type" /> 
     </f:facet> 
     <p:selectOneMenu value="#{phone.type}"> 
      <f:selectItem itemLabel="" itemValue="" /> 
      <f:selectItems value="#{backOfficeLookupClient.allPhoneTypes}" /> 
     </p:selectOneMenu> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Area Code" /> 
     </f:facet> 
     <h:inputText value="#{phone.areaCode}" size="3" maxlength="3" /> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Exchange" /> 
     </f:facet> 
     <h:inputText value="#{phone.exchange}" size="3" maxlength="3" /> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Local" /> 
     </f:facet> 
     <h:inputText value="#{phone.local}" size="4" maxlength="4" /> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Extension" /> 
     </f:facet> 
     <h:inputText value="#{phone.extension}" size="5" maxlength="5" /> 
    </p:column> 
</p:dataTable> 

Я пытаюсь использовать пользовательскую проверку с помощью объекта телефона. Мне нужно вызвать службу проверки телефона, которая принимает эти значения столбцов в качестве входных данных. Могу ли я использовать <f:validator> здесь, в данном случае ?, Если да, то как?

+0

Что Непропеченный ответ ОС StarsSky будет принято означает, что вы успех и закончил в реализации функционального требования конкретного. Это правда? Это в сочетании с компонентом «UIData», а не так же тривиально, как предполагает StarsSky. Кроме того, '' по сути является уродливым взломом для конкретного требования. Есть более чистые способы. – BalusC

+0

@BaluC: Итак, я еще не пробовал это на dataTable, но я пробовал его по адресу Validations, и хотя, хотя я бы использовал postValidate, я по-прежнему пошел другим методом, и, кстати, это один из решение было предоставлено в вашем блоге. Приятно слышать от самого мастера :), я хотел бы принять предложения от вас, мужчина! http://balusc.blogspot.com/2007/12/validator-for-multiple-fields.html. Пожалуйста, дайте мне знать более чистое решение. Спасибо! – PavanSandeep

ответ

1

Вы можете прикрепить к dataTable валидатор слушателя

<f:event type="postValidate" listener="#{bean.customValidation}"/> 

и проверить объект телефона в боб

public void customValidation(ComponentSystemEvent event) { 
    ... 
} 

Тогда перебрать все DataTable детей и проверки каждого из них.

Here ther - хороший учебник для начала.

Смежные вопросы