在JSP页面中进行调试?
我正在使用Java 1.6,Spring 3.4,Spring Webflow 2.3.2和Tomcat7。我正在尝试调试使用EL表达式的JSP页面,例如:
<c:if test="${myObject.myThing == SomeClass.ENUMVALUE.myvalue}" >
该myObject
对象作为Webflow模型对象传递。我在此行上设置了一个断点,可以到达它并中断它,但是我尝试“观察”或“评估”的任何操作都会给我一条错误消息。我要么
${myObject.myThing == SomeClass.ENUMVALUE.myvalue}: Invalid ExpressionmyObject.myThing: Type is unknown for 'myObject'
(MyCorrectType) myObject: Cannot find local variable 'myObject'
我怎么能找到这个模型对象?到达JSP页面时包含的内容是什么?
回答:
答案是,它将存在于org.apache.catalina.connector.Request
对象中(在我的特殊情况下,它被埋在包装对象内部的几层深处。)
如果您正在使用调试器(例如Intellij中的调试器)(我使用的是调试器),则可以通过对表达式求值来获取单个属性的值(例如Webflow模型对象)request.getAttribute("attributeName")
。请注意,这可能会返回Java
Object类型,并且您可能必须将其强制转换为正确的类型。
例如,在我的情况下,我可以使用以下表达式找到所需的值:
((MyObject)(request.getAttribute("myObject"))).getMyThing()
希望对您有所帮助。
以上是 在JSP页面中进行调试? 的全部内容, 来源链接: utcz.com/qa/402307.html