2013-09-13 3 views
1

Я использую JSF 2.1.21 и Icefaces 3.3. Есть ли предел для числа id в атрибуте render f: ajax, если они все в одной форме? Если я использую 4 id, это вызывает следующее исключение. Если я использую 3, у меня нет проблем. Все 4 компоненты вместе с ListBox в одной формеjava.lang.NullPointerException at org.icefaces.impl.context.DOMPartialViewContext.generateElementUpdateNotifications

<ice:form> 
<h:selectOneListbox id="userId" value="#{myViewScopedBean.userId}"> 
<f:selectItems value="#{myViewScopedBean.userSelectList}" /> 
<f:ajax execute="@this" render="id1 id2 id3 id4" 
    listener="#{myReqScopedController.userSelected}"/> 
</h:selectOneListbox> 
.... 
</ice:form> 



Error Rendering View[/myPage.xhtml] 
          java.lang.NullPointerException 
at org.icefaces.impl.context.DOMPartialViewContext.generateElementUpdateNotifications(DOMPartialViewContext.java:285) 
at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:241) 
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:973) 
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) 
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:413) 
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124) 
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1663) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) 
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) 
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864) 
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) 
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) 
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604) 
+0

Нет, нет технических ограничений. Это похоже на другую ошибку ICEfaces. – BalusC

+0

Я вижу, что он вызывает двойные представления ajax, если я выдаю '@ form', я заменил' ice: form' на 'h: form'. Я чувствую, что JSF 2 лучше всего сам по себе, по крайней мере, не с Icefaces –

ответ

1

Там было несколько исправлений в алгоритм DOM-дифф в течение последних нескольких месяцев с момента выпуска 3.3 (http://jira.icesoft.org/browse/ICE-9490). Вы должны попробовать багажник и сообщить, если вы все еще видите проблему.

http://anonsvn.icesoft.org/repo

+0

Я не могу использовать выпуск из багажника, если это бета-версия. Я могу получить новый релиз позже с сайта Icefaces. Но так как я сам исправил эту проблему, я бы не стал ее беспокоить. Также я хотел бы, чтобы они каким-то образом переопределили способ использования IceWorks ajax на всей странице. «Ice: setEventPhase» также имеет некоторые ошибки при использовании с 'valueChangeListener'. В любом случае спасибо за вашу помощь! –

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