2011-12-01 17 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这是非常有用的。它主要评估表达语言和链接,但如果你有一些意大利面,这将节省时间。

相关问题