Проблемы ADF с af:validateRegExp (привязка длинного поля)

У меня есть приложение с портлетом в окружении WebCenter. Это приложение сделано с использованием JSF (с реализацией ADF), поэтому у меня есть такое поле:

<af:inputText visible="#{CadastrarFormularioContato.showCodigoEc}"
                        label="#{msg.CODIGODOEC}" id="it2" required="true"
                        requiredMessageDetail="#{msg.INFORMECODIGOEC}"
                        showRequired="true"
                        value="#{CadastrarFormularioContato.item.cdEstabelecimento}">                        
                        <af:validateRegExp messageDetailNoMatch="#{msg.CODIGOECSOMENTENUMEROS}" pattern="^[0-9]{1,}$"/>              
                        <af:convertNumber type="number"/>
                        </af:inputText>

Но когда я вызываю отправку формы, я получаю следующую ошибку:

javax.portlet.faces.BridgeException: java.lang.IllegalArgumentException: 'value' is not of type java.lang.String.

Мой Object.longField:

private Long longField

(с его геттерами/сеттерами)

Я пытаюсь использовать convert, convertNumber и т. д., но безуспешно.

Проблема связана с тегом «validateRegExp» (если я его удалю, он сработает). Итак, почему?

Любое предложение?


person andolffer.joseph    schedule 18.04.2012    source источник


Ответы (1)


validateRegExp принимает только строки. Если вы можете изменить класс Java, то добавление поля String для затенения Long — это легкое решение. Если нет, вы можете написать свой собственный валидатор регулярных выражений.

person Billy Bob Bain    schedule 19.04.2012