当前位置: 首页 > 知识库问答 >
问题:

FreeMarker检查对象的类名

宿嘉
2023-03-14

有没有一种方法可以在freemarker模板中获取对象的类名?

<#if component.javaType.class.name.equals("test")  > 
 "something...."
</#else>
 "something else ...."
</#if>

共有1个答案

谢奕
2023-03-14

没有内置的功能,但根据配置设置和对象的类型,这可能是有效的:

<#if component.class.name == 'com.example.Something'>

这是因为component.foo在Java中只是表示comonent.getfoo(),所以上面的代码只是表示component.getclass().getname()。但是,如果组件的JavaBean属性没有公开,这就不起作用了,而string-s、number-s、map-s、list-s和一些更“标准”的类就是这种情况(假设使用通常的FreeMarker配置)。如果component可以是这样一个对象,但无论如何对它们的比较应该是false,那么您可以编写(component.class.name)!'unknown'=='com.example.something'

 类似资料:
  • 我定义了这种类型 我想检查一个对象是否来自该类型,但没有办法。我已经尝试过了 我有一个错误:

  • 我有三节课: 人类 父亲 孩子。 儿童阶级延伸父亲,父亲延伸人类。 我已经创建了每个类的一些实例并将它们存储到ArrayList中。 现在,我想编写一个方法来检查对象father1是否与对象child1地址字段(类Father和Child的实例)具有相同的字段地址(例如:“21 str Goodwin”),并将此方法提供给我的ArrayList,如果发现任何结果,则打印。 我怎么能这样呢? 为了更

  • 我想递归遍历LinkedHashMap的键和值,并使用ApacheFreeMarker将它们打印到模板中。LinkedHashMap包含作为字符串的键和作为对象的值。这些值可以是LinkedHashMap、ArrayList或字符串。 下面的java源代码返回我想使用freemarker创建的字符串。 输出为: freemarker模板包含以下部分。 使用此模板时,将显示以下错误: 错误显示“ob

  • 问题内容: 我正在玩Java的反射API,并尝试处理一些字段。现在,我要确定字段的类型。字符串很简单,只需执行即可。其他非派生类也是如此。但是,如何检查派生类?例如作为的子类。我无法找到任何或方法。我是否需要遍历所有人并自己找到超人? 问题答案: 您需要此方法: 一般情况下,(以上)应替换为并应替换为 从JavaDoc: 确定此对象表示的类或接口是否与指定参数表示的类或接口相同或超类或超接口。如果

  • 问题内容: 有没有一种简单的方法来验证对象属于给定的类?例如,我可以 但这需要每次在运行中实例化一个新对象,而只是将其丢弃。有没有更好的方法来检查“ a”是否属于类“ MyClass”? 问题答案: 如其他答案所述,关键字通常是您想要的。请记住,超类也会返回。 如果要查看对象是否是类的直接实例,则可以比较该类。您可以通过获取实例的类对象。您可以通过静态访问特定的类。 因此,例如: 在上面的例子中,

  • 超文本传输协议GET方法的响应如下所示: 在前端,我想检查属性是否为空。我尝试过这种方法,但不起作用