我正在使用 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/