2016-07-14 45 views
4

有什麼辦法來確定哪些訂單(甚至什麼文件)導致找到原因:「表單組件需要在其祖先中有一個UIForm。」

表單組件需要在其祖先一個UIForm。建議:附上必要的組件

來自Primefaces的警告消息?我剛剛開始研究一個已建立的項目,其中包含許多許多.xhtml文件(由其他人編寫)以及各種模板和繼承,並且我無法縮小導致該問題的文件的範圍。

我試過Google搜索沒有運氣,我找不到答案,所以地址如何找到錯誤的來源。

更新:它不像去url中顯示的頁面那麼簡單。例如,當我導航到'../foo.xhtml'時會顯示警告,但是,foo.xhtml實現了一個模板幷包含多個其他.xhtml文件(每個文件又包含幾個.xhtml文件)。所有的文件都有一定的規模(至少500行)。

+1

什麼頁面應該清楚,對吧?既然你在一個頁面中獲得這個(或者是這個服務器日誌?)試圖增加日誌級別? – Kukeltje

+0

@Kukeltje不,實際上。我會更新這個問題。 – lucasvw

+0

此外,它不會在任何地方註銷,它只是在頁面加載時顯示的primefaces growl消息。 – lucasvw

回答

4

將調試斷點FormOmittedChecker#check(),將if塊,其中isInNeedOfForm(component)返回true,其是作爲line 99 2.2.12鑽嘴魚科的內部。

96     if (isForm(component)) { 
    97      result = VisitResult.REJECT; 
    98     } else if (isInNeedOfForm(component)) { 
* 99      addFormOmittedMessage(finalContext); 
    100     } 

考慮到與輸入欄的網頁沒有<h:form>

<h:inputText id="someInputText" /> 

斷點命中看起來像下面在Eclipse:

正如你在截圖中看到,你可以檢查變量堆棧中的變量component,然後檢查它的clientId(或id)財產。最後,您可以在生成的HTML輸出和/或JSF源代碼中找到並關聯它。

但是,我確實同意郵件應包含更好的診斷。這根據issue 4026在Mojarra 2.3.0-m04中修復。

+0

感謝您的迴應!我會盡快嘗試。 – lucasvw

+0

工作就像一個魅力!我希望我能做得更多,而不是接受。非常感謝! – lucasvw

+0

不客氣。你可以考慮開始賞金,讓它運行整整一週。 – BalusC

相關問題