Jsf 2 在ui中自动完成抛出空指针:包含代码
我在代码中使用了PrimeFaces自动完成框。我已经在我的应用程序中的各个地方使用了这个组件,没有问题。当我将其放入通过ui:include动态包含的代码块中时,我得到:Jsf 2 在ui中自动完成抛出空指针:包含代码,jsf-2,primefaces,uiinclude,Jsf 2,Primefaces,Uiinclude,我在代码中使用了PrimeFaces自动完成框。我已经在我的应用程序中的各个地方使用了这个组件,没有问题。当我将其放入通过ui:include动态包含的代码块中时,我得到: 14:32:30,115 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-steves-10.11.100.136-15081-2) java.lang.NullPointerException 如果我在ui:include之前获取准确的代
14:32:30,115 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-steves-10.11.100.136-15081-2) java.lang.NullPointerException
如果我在ui:include之前获取准确的代码副本并将其粘贴到父级中,它就会在那里工作。所以很明显,问题与它在ui中的位置有关:include。include中的ajax控件有问题吗?我需要做些什么来解决这个问题
我的环境是PF3.4RC1、JBoss7.1、Mojarra 2.1.5
更新:
这是我正在使用的代码。我没有费心包括支持bean,因为我在代码中设置了断点,只有在使用“工作”自动完成时才会触及它。作为附加信息,我尝试在片段上放置commandbutton,但它也无法调用支持bean上的actionlistener方法
主(父)页:
更新2:
我的意图是在用户单击按钮时动态地交换屏幕的一部分。作为测试,在创建支持bean时,我默认使用有问题的片段(SpecSheet)。当我这样做的时候,自动完成对该片段起作用。当我切换到另一个具有自动完成功能的片段(BOM)时,该片段不起作用。如果我切换回SpecSheet,自动完成仍然有效。堆栈跟踪会很有帮助。对不起,我应该在第一次循环中包含我的代码。至于堆栈跟踪,我只得到了这个错误。没什么可说的。我已经从我的日志中包括了更多的行,只是为了显示我所看到的。谢谢。添加了第二次更新。做了更多的测试,试图缩小问题范围。如果包含发生在页面第一次呈现时,那么它似乎可以工作。如果以后通过ajax添加,则不会。
<p:panel id="dataEntryPane"
rendered="#{manageItemHandler.currItem ne null}">
<!-- This Auto Complete works -->
<p:autoComplete
completeMethod="#{itemAutoComplete.autoCompleteList}" var="item"
itemLabel="#{item.itemNum}" itemValue="#{item}"
converter="ItemConverter" queryDelay="750">
<f:facet name="itemtip">
<p:panelGrid columns="2" cellpadding="5" style=" width:400px;">
<f:facet name="header">
<p:column colspan="2">
<h:outputText value="Item Information"
style="font-weight:bold; font-size:20px; font-style:italic;" />
</p:column>
</f:facet>
<p:row>
<h:outputText value="#{item.itemNum}" />
</p:row>
<p:row>
<h:outputText value="#{item.itemDesc}" />
</p:row>
</p:panelGrid>
</f:facet>
</p:autoComplete>
<ui:include src="#{manageItemHandler.dataEntryFrag}" />
</p:panel>
<p:panel>
<f:facet name="header">
<h:outputText value="Operation - #{manageItemHandler.dataEntryOp.operationNum} BOM Entry" />
<p:commandButton value="SignOff"
actionListener="#{manageItemHandler.doSignOff(manageItemHandler.dataEntryOp.bom)}"
style="float:right"
rendered="#{speed2Session.isRendered('editManageItemOp')}" />
</f:facet>
<!-- This autocomplete does not work -->
<p:autoComplete completeMethod="#{itemAutoComplete.autoCompleteList}"
var="item" itemLabel="#{item.itemNum}" itemValue="#{item}"
converter="ItemConverter" queryDelay="750">
<f:facet name="itemtip">
<p:panelGrid columns="2" cellpadding="5" style=" width:400px;">
<f:facet name="header">
<p:column colspan="2">
<h:outputText value="Item Information" style="font-weight:bold; font-size:20px; font-style:italic;" />
</p:column>
</f:facet>
<p:row>
<h:outputText value="#{item.itemNum}" />
</p:row>
<p:row>
<h:outputText value="#{item.itemDesc}" />
</p:row>
</p:panelGrid>
</f:facet>
</p:autoComplete>
<p:dataTable id="dt_bom" value="#{manageItemHandler.dataEntryOp.bom}"
var="bom">
<p:column headerText="Item Number">
<p:inputText value="#{bom.component}"
disabled="#{speed2Session.isDisabled('editManageItemOp')}" />
</p:column>
<p:column headerText="Item Description">
<h:outputText value="#{bom.descrip}" />
</p:column>
<p:column headerText="QTY">
<p:inputText value="#{bom.qty}"
disabled="#{speed2Session.isDisabled('editManageItemOp')}"></p:inputText>
</p:column>
</p:dataTable>
<p:commandButton value="test button"></p:commandButton>
</p:panel>
15:58:11,578 INFO [stdout] (http-steves-10.11.100.136-15081-6) Hibernate:
15:58:11,578 INFO [stdout] (http-steves-10.11.100.136-15081-6) select
15:58:11,579 INFO [stdout] (http-steves-10.11.100.136-15081-6) itemdata0_.DESCRIP as col_0_0_
15:58:11,579 INFO [stdout] (http-steves-10.11.100.136-15081-6) from
15:58:11,580 INFO [stdout] (http-steves-10.11.100.136-15081-6) MCSITEM itemdata0_
15:58:11,580 INFO [stdout] (http-steves-10.11.100.136-15081-6) where
15:58:11,581 INFO [stdout] (http-steves-10.11.100.136-15081-6) itemdata0_.ITEM=?
15:58:16,538 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) In AutoLoginFilter.doFilter
15:58:16,541 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) In SecurityFilter.doFilter
15:58:16,542 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) OriginalURL: /speed2/modules/main.faces
15:58:16,575 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-steves-10.11.100.136-15081-6) java.lang.NullPointerException
16:02:43,442 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) In AutoLoginFilter.doFilter
16:02:43,445 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) In SecurityFilter.doFilter
16:02:43,446 INFO [com.newpig] (http-steves-10.11.100.136-15081-6) OriginalURL: /speed2/modules/main.faces
16:02:43,475 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-steves-10.11.100.136-15081-6) java.lang.NullPointerException