【问题标题】:How to evalute JSTL EL expression when debugging JSP page?调试 JSP 页面时如何评估 JSTL EL 表达式?
【发布时间】:2016-07-10 12:54:21
【问题描述】:

假设,我在 JSP 页面中设置了一个断点。调试器已停在该行。如何在调试会话中评估 JSTL EL 表达式,而不是每次更改表达式时都将结果发送到浏览器? 我使用 IntelliJ IDEA。习惯性的“ALT+F8”(评估窗口)不起作用。

UPD:在other 线程中,提问者说“调试器永远不会命中”断点。但在我的情况下,执行停止,但我不知道如何在不将结果发送到浏览器的情况下评估 EL 表达式。

【问题讨论】:

标签: jsp jstl el


【解决方案1】:

在调查了Tomcat根据我的JSP文件生成的类的代码后,我发现了两种方法:

  1. 如果您只想检查 EL 表达式中使用的请求参数的值,您可以在“评估表达式”窗口中键入以下内容:
    ((PageContext) pageContext).findAttribute("paramName")
    javax.servlet.jsp.PageContext 类的其他“get”方法,而不是 findAttribute()
  2. 如果要计算确切的表达式,请键入以下内容:
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${yourExpressionHere}", java.lang.String.class, _jspx_page_context, null, false)
    但在您必须将 Tomcat 的库 jasper.jar 添加到您的项目之前。 org.apache.jasper.runtime.PageContextImpl 类在 Tomcat 的 API 文档中有所描述。

【讨论】:

    猜你喜欢
    • 2020-04-06
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多