在JSP中,如何识别List中存在的Object类型?

Rak*_*yal 7 java jsp jstl scriptlet

在JSP中是否有可能获得List中的Object类型,就像我们在Java中一样

myDataBind.getResultsList().get(0).getClass();
Run Code Online (Sandbox Code Playgroud)

或者是否有可能实现这样的目标:

if ( myDataBind.getResultsList().get(0) instanceOf MyClass ) {
  doThis;
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢scriptlet,但如果没有scriptlet就不可能,那么请告诉我即使是这个解决方案.

  • 假设列表中的所有对象都是相同的类型.

Ben*_*Ben 12

使用JSTL,您可以检索使用JavaBean规范的所有内容 - 如果要在java中使用getClass(),则可以在JSTL中使用.class:

这会写出你的类名:

${myList[0].class}
Run Code Online (Sandbox Code Playgroud)

  • 整齐.$ {myList [0] .class.name}虽然是类名(一个简单的toString将打印"class java.lang.String"或"interface java.util.Map") (4认同)

小智 10

我意识到这个问题是6岁; 但是,如果有人在JSP中搜索如何获取Object的Java类,则会发现此问题,请注意当前版本的JSP实际上不允许使用此表示法.你必须这样做

${myList[0]['class']}
Run Code Online (Sandbox Code Playgroud)

代替.如果您希望将类名作为字符串,则此方法适用于上面提到的.name方法.你会的

${myList[0]['class'].name}
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多信息:https://bz.apache.org/bugzilla/show_bug.cgi?id = 50120

希望这有助于某人!