2012-07-03 48 views
3

我正在開發一個JSF 2項目。在調用所有這些函數<a4j:commandButton>不起作用後,在客戶端獲得了一些javascript/jQuery函數。我得到jsf 2.0使用javascript可以防止ajax調用

Servlet.service() for servlet Faces Servlet threw exception: java.lang.NullPointerException 
    at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:441) 

如果我改變<a4j:commandButton><h:commandButton>,然後一切工作正常,但我需要a4j因爲oncomplete屬性。

我如何調試這個問題?它看起來像JavaScript事件的問題,這阻止了Ajax調用。

+0

我認爲這是一個IE7/JBoss問題。我在這裏發現了一些信息(http://code.google.com/p/primefaces/issues/detail?id=4361) – JustinKSU

+0

請編輯該問題以包含完整的SSCCE。有太多可能的因素會導致失敗。 – BalusC

+0

我不確定這個問題是否適合StackOverflow。我已經創建了JIRA條目,一個用於Mojarra,一個用於RichFaces,因爲目前還不清楚問題出在哪裏。 (http://java.net/jira/browse/JAVASERVERFACES-2666)和(https://issues.jboss.org/browse/RF-12693),我提供了更多信息。 @BalusC,我應該將這種信息添加到這個問題中,還是應該刪除賞金(如果可以的話)? – JustinKSU

回答

1

我已經找到了這個問題,以確定它是由於<button>代碼在HTML之中。

例如:

<!DOCTYPE html> 
<html lang="en" 
xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:a4j="http://richfaces.org/a4j"> 
<h:head> 
</h:head> 
<h:body> 
    <h:form id="example"> 
     <a4j:commandButton type="submit" value="Submit" /> 
     <button>button</button> 
    </h:form> 
</h:body> 
</html> 

我的理論是提交AJAX的JavaScript是通過某種方式在IE7中<button>標籤造成的無效郵寄到服務器混淆。

沒有看到你的HTML,我不能肯定這是你的問題。

檢查的詳細信息如下JIRA職位。

http://java.net/jira/browse/JAVASERVERFACES-2666

https://issues.jboss.org/browse/RF-12693

帕沃爾Pitonak了在RichFaces的發現,如果添加了一個name屬性的<button>那麼錯誤就會消失。