当前位置: 首页 > 面试题库 >

如何通过FreeMarker模板在对象上调用Java方法?

宦树
2023-03-14
问题内容

是否可以调用从Freemarker模板获取参数的方法?

我有一个对象模型,试图用Freemarker渲染到网页中。其中一个对象具有一种获取其内容的子列表的方法-采取用于过滤列表的参数:

public List getunits(final String type);

我知道在JSP中您不能直接执行此操作,但是您可以编写自定义函数来实现所需的结果。您如何在Freemarker中解决此问题?编写自定义函数是否一样?还是有某种实际调用这种功能的方法?


问题答案:

FreeMarker允许通过表达式从模型中调用可用的方法。

假设您的对象已公开,则myBean可以按如下所示调用方法:

<#list myBean.getunits("myType") as unit>
  do stuff with ${unit}
</#list>

<list>当然,您不必使用,这只是一个示例,因为您的方法将返回一个列表。



 类似资料:
  • 问题内容: 基于此问题 递增变量名称? 我有一个数组列表“ peopleHolder”,其中包含各种“人”对象。我想基于for循环自动创建“人”对象。我做了以下 我想从人员类中调用方法。例如person.setAge; 如何通过arraylist调用此类方法?我想为每个对象设置值的方法。 问题答案: 如果要在列表中的所有对象上调用某种方法,则需要首先对其进行迭代,然后在每个元素中调用方法。可以说您

  • 我正在使用Smoks库进行XML到XML的转换。下面是Smoks配置。在freemarker模板中,我希望访问jdk库类以及我在项目中创建的类。请让我知道我如何实现这一点。

  • 我正在尝试调用web上下文对象上的方法,例如在我的模板中的thymeleaf 3.0.3和Spring Boot 1.5.1中的#request和#response。 我不断收到这样的错误: spel.spel.spelEvaluation异常: EL1011E: 方法调用: 尝试在空上下文对象上调用方法(java.lang.String) 这是一个控制器: 和一个模板: 这是一个例子,但无论我在

  • 我正在用Freemarker模板编写应用程序。我通过Java类获得了如何配置和运行. ftl模板机制的知识,并使控制台或文件输出在上面打印模板结果。 但是如何在servlet上实现呢?它是如何工作的?我想跑。类似Tomcat的ftl文件。jsp文件。但它只给我一个错误(“说明请求的资源不可用”)。 有人能给我解释一下怎么跑吗。servlet上的ftl文件? 这是我的web.xml: 这是我的Jav

  • 问题内容: 我有一个通用的JAX-RS资源类,并且定义了一个通用的方法 和用户类别: 这是示例子类定义: 我得到以下异常: 如果我将T替换为这样的已定义类: 然后就可以了 关于如何使它与通用T一起工作的任何想法吗? 问题答案: 编译源代码后,将通过以下行创建(匿名)类: 使用类型变量来引用其父级。由于类型变量在运行时没有值,因此不能使用此类泛型。您被迫从呼叫站点传递所谓的 类型令牌 。这是一个示例

  • 问题 你有一个字符串形式的方法名称,想通过它调用某个对象的对应方法。 解决方案 最简单的情况,可以使用 getattr() : import math class Point: def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return 'P