java - 在 JSP 页面内调试?

标签 java spring jsp spring-webflow

我正在使用 Java 1.6、Spring 3.4、Spring Webflow 2.3.2 和 Tomcat 7。我正在尝试调试使用 EL 表达式的 JSP 页面,例如:

<c:if test="${myObject.myThing == SomeClass.ENUMVALUE.myvalue}"  >

myObject 对象作为 Webflow 模型对象传入。我在这条线上设置了一个断点,我能够到达它并中断它,但是我尝试“观察”或“评估”的任何内容都会给我一条错误消息。我得到要么

${myObject.myThing == SomeClass.ENUMVALUE.myvalue}:  Invalid Expression

myObject.myThing:  Type is unknown for 'myObject'

(MyCorrectType) myObject:  Cannot find local variable 'myObject'

我到底怎样才能找到这个模型对象?当它到达 JSP 页面时它包含什么?

最佳答案

答案是它将位于 org.apache.catalina.connector.Request 对象中(在我的特定情况下,它被深埋在包装对象内部几层。)

如果您使用调试器,例如 Intellij 中的调试器(我使用的),您可以通过计算表达式 request.getAttribute("attributeName"来获取单个属性的值(例如 Webflow 模型对象) “)。请注意,这可能会返回 Java 对象类型,您可能必须将其转换为正确的类型。

例如,在我的例子中,我能够使用以下表达式找到我想要的值:

((MyObject)(request.getAttribute("myObject"))).getMyThing()

我希望这对某人有帮助。

关于java - 在 JSP 页面内调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977567/

相关文章:

java - 从多个线程写入文本文件?

java - 如何为数据库连接创建不同的类

javascript - 未捕获的语法错误 : missing ) after argument list 5

html - JSP注释称为隐藏注释,html注释称为输出注释

java - 使用 Metawidget 将对象与 GUI 中的值同步

java - Java ResultSet 中的数据排序

java - Maven 程序集包含快照依赖项

java - Spring Jersey 在请求范围类上注入(inject) ContainerRequestContext

mysql - 长时间闲置后,服务器在 spring-boot-starter-data-jpa 中使用 Mysql 抛出错误 'Could not open JPA EntityManager for transaction'

java - 输入类型数字和数字的值相乘