gpt4 book ai didi

eclipse - 如何调试 JSF/EL

转载 作者:行者123 更新时间:2023-12-02 09:52:59 25 4
gpt4 key购买 nike

如何在JSF页面中调试EL?我想观察变量值、函数调用等。最好的解决方案是 Eclipse 插件,但任何其他可能性都比猜测“为什么这个表达式无法正确渲染?”更好。

最佳答案

在 JSF/Facelets 中您可以获得的最接近的结果是放置 <ui:debug /> View 中的某处:

<ui:debug />

CtrlShiftD 应显示一个弹出窗口,其中包含有关组件树以及所有可用请求参数和请求/ View 的调试信息/flash/session/application 作用域变量。它基本上代表了所有这些 map 的内容。

热键可以通过 hotkey 配置。属性,以便当它与浏览器默认热键冲突时您可以选择另一个,就像在 Firefox 中一样; CtrlShiftD 默认情况下会显示“添加书签”对话框。以下是如何让它监听 CtrlShiftX :

<ui:debug hotkey="x" />

您通常还想在非开发阶段隐藏它,因此添加这样的渲染条件:

<ui:debug hotkey="x" rendered="#{facesContext.application.projectStage == 'Development'}" />

在显示的调试信息中,提供的有关作用域变量的信息并不像您期望的那么好。它只显示 Object#toString()所有作用域变量的结果,默认为 com.example.Bean@hashcode 。您无法像在 Eclipse 调试器的调试 View 中那样直接探索它们的属性及其属性的值。您需要实现 toString()相应地,以便返回尽可能多的相关信息(如果需要,您甚至可以通过右键单击源代码 > 源 > 生成 toString() 让 Eclipse 自动生成它):

@Override
public String toString() {
return String.format("Bean[prop1=%s,prop2=%s,prop3=%s]", prop1, prop2, prop3);
}

对于方法调用,按照通常的方式在Java源代码上打断点即可。当 EL 调用该方法时,Eclipse 也会启动。如果它是托管 bean,您也只能在 Eclipse 调试器中看到它的属性。

关于eclipse - 如何调试 JSF/EL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com