使用 IntelliJ IDEA 进行调试时如何解析 JSP 中的 Spring 模型变量?

Posted

技术标签:

【中文标题】使用 IntelliJ IDEA 进行调试时如何解析 JSP 中的 Spring 模型变量?【英文标题】:How do I resolve Spring model variables in a JSP when debugging with IntelliJ IDEA? 【发布时间】:2015-05-27 10:52:54 【问题描述】:

通过 IntelliJ IDEA(终极版)运行 Tomcat 应用程序时,我在 JSP 中设置了断点。到目前为止一切顺利,我可以按预期单步执行 JSP。

问题是:调试时无法解析$path等Spring模型变量。 Evaluate Expression 触发错误:“Cannot find variable 'path'”。

作为一种解决方法,我可以使用<c:set var="testPath" value="$path"> 显式引用模型值。这样我可以在 Variables » _jspx_page_context » 属性 中看到 testPath,但看不到 path

【问题讨论】:

请同时添加代码。 也许你想看看这个:***.com/questions/14878548/… 试试这些 1. [***.com/questions/33739/… 2. [***.com/questions/12694392/… [1]: ***.com/questions/33739/… [2]: ***.com/questions/12694392/… AdityaSingh & @Saidolim:这些都与我的问题无关,因为我实际上能够调试 JSP。 【参考方案1】:

这只是一种变通方法,当然不是最佳做法。但是,如果您需要快速而肮脏的东西,请将另一个 String var 设置为您的 $path 参数。调试器将能够在运行时看到该新变量。

【讨论】:

【参考方案2】:

变量path 是Spring Framework 的一部分,被设置为PageContext 的一个属性,调试此类变量的方法很少。

对我来说,最好的解决方案是在手表视图中添加一个表达式:pageContext.findAttribute("path")_jspx_page_context.findAttribute("path")

没关系,因为它们都指向同一个运行时对象:

【讨论】:

谢谢! pageContext 在我的变量视图中不可用,但 _jspx_page_context 工作正常。 @neu242 好吧,不知道。认为 pageContext 对所有人都是可见的。感谢您的回复。 不错的答案!我有类似的需求,但使用的是 Eclipse 而不是 IntelliJ。这个答案有所帮助,尽管在 Eclipse 中似乎更难获取信息(但幸运的是仍然可能):需要转到变量视图,然后展开 _jspx_page_context - pageAttributes - table,然后单独打开每个映射索引并检查键/值每个人。

以上是关于使用 IntelliJ IDEA 进行调试时如何解析 JSP 中的 Spring 模型变量?的主要内容,如果未能解决你的问题,请参考以下文章

[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]

在 AppCode 中调试 Intellij Idea 插件

IntelliJ IDEA 中的 JSP 调试

使用 Intellij Idea 进行远程调试

如何使用 IntelliJ IDEA 社区版调试 spring-boot 应用程序?

flinkFlink 使用IntelliJ IDEA 进行远程调试代码