Freemarker 中的继承/instanceof 检查

2024-02-23

我的用例是为用户提供在模板引擎的帮助下创建报告的可能性。因此,我提取了数据模型的相关部分,并将 Freemarker 集成为模板引擎。 到目前为止,它工作得很好,但现在我的数据模型包含某些位置的继承 - 但 Freemarker 似乎不支持 instanceof 操作?如何处理这个问题呢?是否还有其他支持模型继承的模板引擎?

虚构的例子:

我有两个类“汽车”和“自行车”,它们扩展了“车辆”。该模型包含一个“车队”类,其中包含车辆列表。用户希望(在模板的帮助下)迭代列表并在汽车的情况下写入属性“countSeats”,在自行车的情况下写入属性“框架尺寸”。如何使用 Freemarker 来实现这一目标?可以在任何模板引擎中完成吗?

提前谢谢了!

// 编辑:不幸的是,不可能将列表与超类拆分为多个具有“具体”对象的列表,因为列表中车辆的顺序(在上面的示例中)至关重要。


更丑陋的解决方案

            <#if yourObject.class.simpleName == "Simple class name like String">
                something
            </#if>                     

            <#if yourObject.class.simpleName == "other simple class name">
                do something else
            </#if>  `
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Freemarker 中的继承/instanceof 检查 的相关文章

随机推荐

  • 如何将TFLite模型转换为量化TFLite模型?

    我有一个 tflite 文件 我想对其进行量化 如何将TFLite模型转换为量化TFLite模型 请注意 您需要源模型来对其进行量化 由于 tflite 模型格式的限制 无法对其进行量化 您的源模型可以是 TF saving model K
  • 跨版本后缀冲突(sbt、Scala-STM、Play-JSON)

    我使用的 JSON 扩展依赖于 Mandubian 的 play json 2 2 SNAPSHOT 一切都很顺利 直到现在我有了一个基于 Scala STM 的项目 sbt 报告以下问题 error Modules were resolv
  • 在移动设备或桌面导航栏时显示汉堡菜单

    我正在进行移动优先设计 并使用 CSS 和 jQuery 制作了一个我非常喜欢的下拉汉堡菜单 但我想做的是 当页面显示在桌面上时 使该汉堡菜单消失 并替换为常规的水平菜单导航栏 我能够使菜单响应 所以至少有一个水平导航栏可以在桌面上下拉 而
  • css 两行1列框布局

    我一直在使用 Flexbox 进行两行一列布局 我使用 Flexbox 是因为我认为 css2 1 无法填充 box B 的剩余空间 在我的 jsFiddle 示例中 我无法让 box C 在右侧向上移动 也无法让 box B 垂直弯曲并填
  • 无需用户凭据的身份验证

    我正在组建一个个人 React 站点 并希望将请求发送到 AWS API 网关 然而 我只想my site能够提取数据 不会有用户模型 并且我曾经使用过的每个身份验证模型都要求用户通过登录执行某些操作 无论是用户 密码还是 AD 有人可以指
  • android-NestDK 卡住了 pincode

    我正在尝试弄清楚如何将我的 NestDK 应用程序连接到 Nest API 使用我的用户名和密码登录后 我收到 使用此 Pincode 连接 Nest XXXXXX 我该怎么办 我预计 access token 请求会在后台发生 但我卡在了
  • Windows Phone:如何禁用 ScrollViewer(列表框)中的触摸滚动?

    我有一个滚动查看器 里面有一个列表框 我需要通过触摸禁用垂直滚动 我该怎么办 换句话说 用户无法通过触摸滚动 我已经放置了按钮 但这是另一个故事
  • Flutter:自定义单选按钮

    How can I create a custom radio button group like this in flutter 这是完整的代码 class CustomRadio extends StatefulWidget overr
  • JDO 异常:“查询需要 1 个参数,但已提供 2 个值。”

    尽管我的 JDO 查询包含TWO declareParameters语句 下面的代码产生一个错误 声称只接受一个参数 查询需要 1 个参数 但已提供 2 个值 这两个参数是amountP and taxP javax jdo Query q
  • 为什么我会收到此 SQL/DB 错误?

    我正在尝试使用 DB2 运行一个简单的 SQL 语句 但遇到了一些问题 我希望在 txt db2 文件中有一个脚本 并让引擎处理所有命令 这是脚本 CONNECT TO MYDB CREATE TABLE PERSONS PID SMALL
  • 垫选择内的模板出口不起作用

    我试图在带有 template outlet 的 mat select 中传递 tmp 但无法显示选择选项 下面是我的代码和 stackblitz 的链接
  • 无法在 IE 中通过 AJAX 更改会话变量

    当我尝试使用 AJAX 更改服务器上的会话变量时 IE 出现一些奇怪的行为 它在 FF Chrome Safari 和我测试过的所有其他浏览器中运行良好 但在 IE 中运行不佳 我在会话变量中为匿名用户维护一个变量 整数 列表 这样我就可以
  • 我可以将 Android 项目中的资源标记为已弃用吗?

    我有一个 android 库 我想将其某些资源标记为已弃用 可绘制对象 尺寸 持续时间 我在某处读到可以将 deprecated deprecated 添加到资源定义中 但它似乎没有做任何事情 在 Android R 中 您可以看到诸如 j
  • 设置 Newtonsoft.Json.JsonConvert 的比较器以用于 HashSet/Dictionary

    我有一个HashSet
  • 使用新的 Firebase 在 Heroku 上为 ElasticSearch 设置 Flashlight

    我的目标是将 Firebase 与 ElasticSearch 连接起来进行索引 以便我可以在 iOS 应用程序中搜索用户名时实现 like 查询 据我所知 这是最好的解决方案 我想尽早以这种方式解决它 以便可扩展 而不是暴力破解 为了实现
  • android 如何处理相机意图

    我正在 Android 中研究一些相机的东西 我得到了一些教程 根据我的需要 我使用以下代码 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE C
  • 使用查询字符串预填充 github 新问题表单

    有没有办法获得新 git 问题的链接 该问题预先填充标签以及标签的分配字段以及查询字符串中指定的用户 我的用例是 我想要一个可以提供给测试人员的链接 以确保他们为我的功能选择正确的标签 并且还将 git 问题分配给我 我发现格式是
  • 在Python中设置分区

    我有一个数组 1 2 3 我想使用数组的所有元素进行所有可能的组合 Result 1 2 3 1 2 3 1 2 3 1 3 2 1 2 3 既然这个好问题又被复活了 这里有一个新的答案 问题是递归解决的 如果你已经有一个分区n 1元素 你
  • 哪种方法可以测试乘法时有符号整数溢出?

    以下哪一项以符合标准的方式做了 正确的事 你可以假设m and n属于类型int 有符号整数 主要问题是有符号整数溢出 样本1 size t bytes n m if n gt 0 m gt 0 SIZE MAX n gt m alloca
  • Freemarker 中的继承/instanceof 检查

    我的用例是为用户提供在模板引擎的帮助下创建报告的可能性 因此 我提取了数据模型的相关部分 并将 Freemarker 集成为模板引擎 到目前为止 它工作得很好 但现在我的数据模型包含某些位置的继承 但 Freemarker 似乎不支持 in