2013-05-03 3 views
1

У меня возникла проблема с использованием атрибута p: ajax update atribute. Когда я использую в своем коде <p:ajax update="@all" />, я получаю javax.el.PropertyNotFoundException. Когда я использую <f:ajax render="@all" />, я не получаю. Я, хотя те тэз теги почти такие же. Может ли кто-нибудь объяснить, что происходит?Основные понятия <p: ajax update = "@ all" /> не работает

Я использую реализацию mojjara, перфорации 3.5 и Liferay jsf portlet bridge.

Пример StackTrace:

Вызванный: javax.el.PropertyNotFoundException: /pages/views/personForm.xhtml @ 95,99 значение = "# {personManagementBean.item.contact.phoneNumber}": Target Unreachable, null возвращает по адресу com.sun.faces.facelets.el.TagValueExpression.getType (TagValueExpression.java:100) at org.primefaces.renderkit.InputRenderer.findImplicitConverter (InputRenderer.java:170) at org.primefaces.renderkit.InputRenderer.findConverter (InputRenderer.java:190) at org.primefaces.renderkit.InputRenderer.getConvertedValue (InputRenderer.java:196) at javax.faces.component.UIInput.getConvertedValue (UIInput.java:1030) at javax.faces.component.UIInput.validate (UIInput.java:960) at javax.faces.component.UIInput.executeValidate (UIInput. Java: 1233) на javax.faces.component.UIInput.processValidators (UIInput.java:698) в javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:1214) в javax.faces.component.UIComponentBase. processValidators (UIComponentBase.java:1214) на javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:1214) на javax.faces.component.UIForm.processValidators (UIForm.java:253) на javax.faces. компонент. UIComponentBase.processValidators (UIComponentBase.java:1214)

Две кнопки:

<p:commandButton value="not working" action="#{enrollmentManagementBean.cancelEnrollment}"> 
    <p:ajax update="@all" /> 
</p:commandButton> 
<h:commandButton value="working" action="#{enrollmentManagementBean.cancelEnrollment}"> 
    <f:ajax render="@all" /> 
</h:commandButton>                  
+1

Вы попробовали ? –

+0

'Target Unreachable, 'null' null null указывает, что' item' или 'contact' является' null'. Вы это подтвердили? – BalusC

+0

RongNK: Первоначально я не пробовал но он работает актуально. Меня еще больше смущает то, что здесь происходит. Подумал, что атрибут обновления внутри commandButton имеет те же функциональные возможности, что и в теге p: ajax. BalusC: Это нуль (я его не инициализирую в любом месте), но код работает до тех пор, пока я не использую . Я считаю, что EL является «нулевым» (если что-то вроде этого существует: D). – svobol13

ответ

6

Оптимус Прайм (главный разработчик Primefaces) утверждает, что update="@all" это плохая идея, и primefaces не реализует его по дизайну link to forum post.

Что я делаю, чтобы обойти проблему, полагается на обновление страницы из javascript. Просто поместите его в атрибут oncomplete кнопки.

oncomplete="window.location.replace(window.location.href);" 

Я считаю, что это должно решить вашу проблему, если у вас все еще есть или быть здесь для справок в будущем.

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