java或者freemarker里怎么看一个对象的所有属性,以及属性的值?

周羊羊
  • 744

比如,在我的一个.ftl文件里,INFO应该是一个java对象,这样的代码<p>${INFO.title}</p> <p>${INFO.address}</p> 可以在页面里看到标题和地点,
我想看这个对象里所有的属性和具体的值,
试着这样写 <p>${INFO}</p>,页面显示的好像是个包名(看不懂 = = ),这样的:com.***公司名马赛克***.***项目名马赛克***.bean.Article@2cd3cec6

比如js里可以用JSON.stringify把对象变成字符串打出来,for in循环可以遍历对象的所有属性,java或freemarker要怎么写?

回复
阅读 4.6k
1 个回答
✓ 已被采纳

如果你用 IDE,比如 Netbeans,运行在调试模式下,打上断点,执行到那,鼠标放到变量上停留一下,就会显示对应的对象信息,比如:

图片描述

如果对象是集合框架,还可以展开集合数据。同时也支持 JSP,只有少量特殊功能支持得不够好。至于 Freemarker,我没用过,但搜了一下有相应的插件,应该也没问题。因为用 Netbeans 十几年,习惯了,其他 IDE 用的不多,Eclipse、IDEA 应该都是可以的,用法大同小异,因为底层都是靠 java -Xdebug。

除此外,你要有空,查下 java.lang.reflect 包的 API Doc,然后自己写个转 JSON 描述的也不是难事,比如我自己的 JSON 辅助类恰好包含了一个 Object 转 JSON 的方法(恰好也有你要的遍历对象属性的代码),当然我这个的目的不是干这个事的,只取了基础的属性。

至于其他工具,记得以前用过一个好像叫 jvmstat,能看不少运行态的东西。平时调试都依赖 IDE,所以也没找过,应该有吧。


补充 IDEA 开启 java remote debug 的方法:

图片描述
图片描述

然后将服务以 -Xdebug 形式启动,连接上即可使用断点功能,java -Xdebug 的参数及各应用容器中开启的方式都能搜到。结果如下:

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏