[
https://issues.apache.org/jira/browse/FREEMARKER-55?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16075734#comment-16075734
]
Woonsan Ko edited comment on FREEMARKER-55 at 7/6/17 1:50 AM:
--------------------------------------------------------------
Hi [~ddekany],
I've created a new PR based on your reviews like the following:
- Switched Servlet spec dependency to 3.0 and jsp-api/EL dependencies to 2.2.
- I've set the spring dependency version to 4.0.x (4.0.9.RELEASE) as a minimal
servlet-spec 3.0 based framework.
- Made {{TaglibFactory}} immutable and add {{Builder}} extending
{{CommonBuilder}} inside the {{TaglibFactory}}.
- Moved {{SpringResourceTemplateLoader}} to {{org.apache.freemarker.spring}}
package.
- Some code clean ups (e.g, replacing while (true), generics in collections,
formatting)
Regarding "the existing Spring macros/functions", yes, I agree. We'll need to
add new macros/functions.
Regarding "FreemarkerViewResolver exposing things like FreemarkerServlet: ...",
{{FreemarkerViewResolver}} doesn't expose {{FreemarkerServlet}}, but it uses
only constants defined in the {{FreemarkerServlet}} to use the same attribute
names, for instance. It used to expose some 'protected' getters/setters for the
internal {{GenericServlet}} (for page object in JSP taglibs), {{ObjectWrapper}}
and {{ServletContextModel}}, but those were removed now. Used only internally
now.
BTW, {{View}} of Spring Framework is dependent on {{HttpServletRequest}} and
{{HttpServletResponse}}. So, {{pageContextServlet}}, {{servletContextModel}}
and {{taglibFactory}} in {{FreemarkerView}} (passed by
{{FreemarkerViewResolver}}) should be okay.
Regards,
Woonsan
was (Author: woon_san):
Hi [~ddekany],
I've created a new PR based on your reviews like the following:
- Switched Servlet spec dependency to 3.0 and jsp-api/EL dependencies to 2.2.
- I've set the spring dependency version to 4.0.x (4.0.9.RELEASE) as a minimal
servlet-spec 3.0 based framework.
- Made {{TaglibFactory}} immutable and add {{Builder}} extending
{{CommonBuilder}} inside the {{TaglibFactory}}.
- Moved {{SpringResourceTemplateLoader}} to {{org.apache.freemarker.spring}}
package.
Regarding "the existing Spring macros/functions", yes, I agree. We'll need to
add new macros/functions.
Regarding "FreemarkerViewResolver exposing things like FreemarkerServlet: ...",
{{FreemarkerViewResolver}} doesn't expose {{FreemarkerServlet}}, but it uses
only constants defined in the {{FreemarkerServlet}} to use the same attribute
names, for instance. It used to expose some 'protected' getters/setters for the
internal {{GenericServlet}} (for page object in JSP taglibs), {{ObjectWrapper}}
and {{ServletContextModel}}, but those were removed now. Used only internally
now.
BTW, {{View}} of Spring Framework is dependent on {{HttpServletRequest}} and
{{HttpServletResponse}}. So, {{pageContextServlet}}, {{servletContextModel}}
and {{taglibFactory}} in {{FreemarkerView}} (passed by
{{FreemarkerViewResolver}}) should be okay.
Regards,
Woonsan
> FM3 freemarker-spring module, Web MVC support
> ---------------------------------------------
>
> Key: FREEMARKER-55
> URL: https://issues.apache.org/jira/browse/FREEMARKER-55
> Project: Apache Freemarker
> Issue Type: Task
> Affects Versions: 3.0.0
> Reporter: Daniel Dekany
>
> Add Spring "Web MVC framework" functionality to freemarker-spring.
> This can be complex task (and the issue possibly has to be subdivided), as it
> involves things like:
> * Some aspects of the FreeMarker 2 integration (developed by the Spring
> developers) are quite confusing ({{FreemarerConfigurer}}, etc.), and we are
> looking into if it needs to be like that.
> * See if we can support {{@EnableWebMvc}} (note that FreeMarker 2 support is
> hard coded into {{ViewResolverRegistry}}, which we can't modify)
> * Creating custom directives/methods to expose Spring features like the
> Spring JSP Tag Library does (but in a way that firs FreeMarker better)
> * Expose JSP custom tag support from the {{freemarker-servlet}} module.
> Depends on: FREEMARKER-54
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)