2011-12-01 37 views
0

隨着我的JSF項目的發展,我已將文件組織成片段和模板。此外,一些片段具有模板片段,因此可以進一步重用。但是,這已經發現了哪些代碼片段用於組成單個頁面有點困難(並且與Java代碼不同,Netbeans不能像在Java方法與「轉到源代碼/實現」之間那樣從模板跳轉到模板等) 。調試工具查看JSF頁面中包含哪些代碼段

是否有一個調試工具,可以幫助查看哪些代碼片段用於形成當前頁面?理想情況下,我正在尋找的東西類似於Visual Event for jQuery

如果沒有這樣的工具存在,讓我解釋我目前正在做什麼,看看它是否可以改進。首先,我捕獲一個調試查詢參數,以便打開和關閉。然後,在每一個片段,我有下面的代碼片段:

<ui:fragment rendered="#{authController.debug}"> 
     <div style="background:red"> 
      From siteTemplate.xhtml 
      </div> 
</ui:fragment> 

顯然,這是很不理想,因爲我必須鍵入每個片段的片段文件名。這將是好得多,如果我能做到這一點:

<ui:fragment rendered="#{authController.debug}"> 
<div style="background:red"> 
     #{Current_File_Name}} 
</div> 
</ui:fragment> 

PS:Django的有一個美好的調試工具欄,顯示使用的模板中,SQL的發行產生當前頁面。 http://www.packtpub.com/article/django-debug-toolbar有什麼類似的嗎?我見過的最好的是FacesTrace,但是發展似乎停滯了。

+0

您有三種可能性: –

回答

2

三種可能性你: 1)Chrome有一個優秀的調試器/控制檯,你應該能夠很容易地跟蹤ID(這是我爲我的模板/組件做的)。

2)如果您未運行Richfaces或繁重的JQuery實現,可以查看Primefaces中的「日誌」。它在展示事件進展的過程中做得非常出色,因此您可以很好地瞭解發生的事情。

3)使用複合組件代替片段 - 這是我切換到的,因爲它們是一個「庫」,它更容易管理和重用。堆棧跟蹤通常會顯示非常詳細的錯誤。

在你上面的例子,而不是:

<ui:fragment rendered="#{authController.debug}"> 
<div style="background:red"> 
     #{Current_File_Name}} 
</div> 
</ui:fragment> 

我大概有一庫「雷:redDiv」

<composite:interface> 
    <composite:attribute name="value" type="java.lang.String"/> 
</composite:interface> 

<composite:implementation>   
     <div style="background:red"> 
     #{cc.attrs.value} 
     </div> 
</composite:implementation> 

我知道你不是想創建一個紅框,但是這個組件可以用在更大的過程如下:

<html 
... 
    xmlns:mine="http://java.sun.com/jsf/composite/mine" 
> 
... 
<mine:redDiv value="Hello World"/> 
... 
</html> 

這種模式完全elimina使用可重用組件替代它的「Snippet」導入方法。將我的項目轉換爲這種模式將代碼基數減少了約50%,並且保持現在的容易程度。爲了參考它的一箇中等項目,它有一個非常「有狀態」的方法,這意味着SessionScope和ViewScope作爲bean的主要範圍,它基本上是一個CRUD應用程序。

很難說你在做什麼,但我的猜測是你有很多文件,它變得令人困惑。複合組件基本上提供了一種方法來解決這個問題,使重新使用更容易。

在回答您有關NetBeans意見和下面的代碼:如果你不依賴於一個IDE Eclipse Web工具確實有從html -> javactrl-click導航和html -> html這是非常有用的。它主要評估表達語言和鏈接,但如果你有一些意大利麪,這將節省時間。

相關問題