2009-07-02 81 views
7

是否有可能在JSP中获得列表对象的类型,就像我们做的Java在JSP中,如何识别列表中存在的对象的类型?

myDataBind.getResultsList().get(0).getClass(); 

或者是有可能实现这样的事情:

if (myDataBind.getResultsList().get(0) instanceOf MyClass) { 
    doThis; 
} 

我不更喜欢scriptlet,但如果没有scriptlet是不可能的,那么请让我知道即使是这样的解决方案。

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

回答

12

使用JSTL,你可以检索使用JavaBean的规范一切 - 如果你想在Java中使用的getClass(),你会在JSTL使用的.class:

这将写出你的类名:

${myList[0].class} 
+4

整洁。 $ {myList [0] .class.name}将是类名(虽然简单的toString会打印“class java.lang.String”或“interface java.util.Map”) – Thilo 2009-07-02 06:32:57

9

我意识到这个问题是6岁;然而,如果有人在JSP中查找如何获取对象的Java类,那么请注意,当前版本的JSP实际上不允许使用这种表示法。你将不得不这样做

${myList[0]['class']} 

改为。如果您希望将类名称作为字符串,则此方法适用于上述的.name方法。你会做

${myList[0]['class'].name} 

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

希望这可以帮助别人!

+0

想知道为什么他们会使它非常不直观。 – killjoy 2017-08-30 13:05:00

相关问题