【问题标题】:Do I have access to annotations through freemarker?我可以通过 freemarker 访问注释吗?
【发布时间】:2011-04-10 11:07:07
【问题描述】:

我正在渲染一个表单来呈现一个带注释的域模型类,即:

@Entity
class User {
    @NotNull
    private String name;
    // other code
}

我想阅读带注释的元数据来决定如何呈现每个属性。

我会用它给我的 input 标签添加 css 类,最后使用 jQuery 在这些字段上附加验证方法。

freemarker 是否提供任何方式来访问带注释的元数据?

【问题讨论】:

    标签: java annotations freemarker


    【解决方案1】:

    可能确实有一种方法可以直接执行此操作,但我逐渐得出结论,在我的操作代码中做额外的工作以提供更简单的“事物”供模板使用,而不是尝试共同-erce Freemark 跳过篮球。

    例如,我将创建一个布尔值列表,每个我正在显示的项目一个,表明该项目是否已经被购买。 Freemarker 非常擅长遍历并行列表。

    【讨论】:

    • 我认为应该有一个“annotation-aware” TemplateModel 公开像 user.name?hasAnnotation('NotNull') 这样的内置函数。这将使控制器与 freemakrer-agnostic 保持一致(它只返回域对象)并将保持 freemarker 样式以在模板中公开数据,不是吗?但我现在不知道如何实现这样的功能。
    • 这当然很好,但是...您必须权衡弄清楚如何实现它与您的控制器不可知论的成本。 IMO 控制器应该了解视图,因此我认为后者没有多大价值。再说一次,你多久需要一次?如果很多,那么实现您的注释想法可能是值得的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多