0
我有它運行在Wildfly9完全正常的Web應用程序,但給我的Websphere8頭疼:阿賈克斯selectOneMenu用於產生NullPointerException異常
<h:form id="productsForm">
<p:selectOneMenu id="productSelector"
value="#{productManager.productName}" style="width: 100%;">
<f:selectItem value="#{null}" />
<f:selectItems value="#{productManager.products}"
var="product" itemLabel="#{product.productName}"
itemValue="#{product.productName}" />
<p:ajax event="change" update="editProductButton" />
</p:selectOneMenu>
<p:button id="editProductButton"
value="Edit Product" outcome="/pages/products/productDetails"
style="float: left; margin-left: 10px;" disabled="#{productManager.productName == null}">
<f:param name="productName"
value="#{productManager.productName}" />
</p:button>
</h:form>
Java方面:
private String productName;
private List<Product> products;
public String getProductName() {
return this.productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public List<Product> getProducts() {
if(null == this.products){
this.products = this.productService.findAll();
}
return this.products;
}
如果一個項目selectOneMenu被選中,我想要啓用「編輯」按鈕。在Wildfly一切都很好,在WebSphere以下異常發生時,我選擇一個項目:
com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause Faces Servlet: javax.servlet.ServletException
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:221)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
[...]
Caused by: java.lang.NullPointerException
at javax.faces.component._SelectItemsIterator.hasNext(_SelectItemsIterator.java:124)
at javax.faces.component._SelectItemsUtil.matchValue(_SelectItemsUtil.java:48)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:77)
at org.primefaces.component.selectonemenu.SelectOneMenu.validateValue(SelectOneMenu.java:282)
at javax.faces.component.UIInput.validate(UIInput.java:583)
at javax.faces.component.UIInput.processValidators(UIInput.java:247)
at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:533)
at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:207)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:773)
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1007)
at javax.faces.component.UIForm.visitTree(UIForm.java:269)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1007)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1007)
at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:362)
at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:342)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.component.UIViewRoot$ProcessValidatorPhaseProcessor.process(UIViewRoot.java:1394)
at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1282)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:758)
at org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:34)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
... 33 more
任何想法,爲什麼這種情況正在發生或該如何修復/解決方法嗎?
其實兩者都是測試環境,但那是另一回事。使用「」爲我做了訣竅。 –
Nitek
''?我覺得它有點乾淨。 –