Hi,

It has been a long time since my last commit to support spring mvc
functions/directives (FREEMARKER-55).
Today, I've opened a pull request, containing an initial form related
work (only form:form and form:input directives for now, but those are
parts of the crucial basement):
- https://github.com/apache/incubator-freemarker/pull/41

Please feel free to take a look and let me know if you have any
comments or remarks.

Some pointers:
- Initially I tried to leverage dynamic varargs for almost every html
attribute, but I ended up defining each available attribute as member
like Spring taglibs do, which seems clearer in both argument layout
and maintenance.
- Arguments for html attributes are kind of inherited from base
classes such as AbstractHtmlElementTemplateDirectiveModel. I ended up
merging named arg list in child directives by accessing static
members, which is not totally clean - static members are visible
anywhere, but that's what I think is the best for now.
- spring:* tags are mapped to "spring.*" models, whereas form:* tags
are mapped to "spring.form.*" models. I didn't want to expose "form"
model separately in a higher level. I found out it's convenient to
write <#assign form=spring.form /> in order to use <@form.input .../>
instead of <@spring.form.input .../>.
- The other (remaining) tasks seem to be relatively more
straightforward: other inputs, button, textarea, select, etc.

I'll probably merge the PR by myself in a day or two and continue with
other directives while being willing to hear any feedback and
suggestions.

Kind regards,

Woonsan

Reply via email to