Есть ли у меня доступ к аннотациям через freemarker?

Я отображаю форму для представления аннотированного класса модели предметной области, т.е.:

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

Я хотел бы прочитать аннотированные метаданные, чтобы решить, как отображать каждое свойство.

Я бы использовал его, чтобы добавить классы css в мои теги input и, наконец, использовать jQuery для прикрепления методов проверки к таким полям.

Предлагает ли freemarker какой-либо способ доступа к аннотированным метаданным?


person protoboolean    schedule 09.09.2010    source источник


Ответы (1)


Действительно, может быть способ сделать это напрямую, но я постепенно пришел к выводу, что проще выполнить дополнительную работу в моем коде действия, чтобы предоставить более простые «вещи» для потребления шаблоном, а не пытаться заставить Freemark прыгать через обручи.

Например, я создам список логических значений, по одному для каждого элемента, который я показываю, указывающий, скажем, был ли уже куплен этот элемент. Freemarker неплохо справляется с обходом параллельных списков.

person Rodney Gitzel    schedule 09.09.2010
comment
Я думаю, что должна быть TemplateModel с поддержкой аннотаций, которая предоставляет встроенные функции, такие как user.name?hasAnnotation('NotNull') . Это сохранит независимость контроллера от freemakrer (он просто возвращает объект домена) и сохранит стиль freemarker для предоставления данных в шаблоне, не так ли? Но я не знаю сейчас, как реализовать такую ​​функцию. - person protoboolean; 11.09.2010
comment
Это было бы неплохо, конечно, но... вы должны взвесить стоимость выяснения того, как это реализовать, по сравнению с тем, что ваш контроллер не является агностиком. IMO контроллер должен знать о представлении, поэтому я не вижу особой ценности в последнем. Опять же, как часто вам это нужно? Если много, то это может стоить затрат на реализацию вашей идеи аннотации. - person Rodney Gitzel; 13.09.2010