Why is this necessary? Freemarker already has an include directive.
-Adrian [hidden email] wrote: > Author: lektran > Date: Mon Jun 15 10:18:55 2009 > New Revision: 784712 > > URL: http://svn.apache.org/viewvc?rev=784712&view=rev > Log: > Add a new template transform for including templates in freemarker templates using component notation: > <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> > > Added: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) > Modified: > ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > > Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff > ============================================================================== > --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) > +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 > @@ -27,3 +27,4 @@ > ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform > setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod > renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform > +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform > > Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto > ============================================================================== > --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) > +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 > @@ -0,0 +1,73 @@ > +/******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + *******************************************************************************/ > +package org.ofbiz.webapp.ftl; > + > +import java.io.IOException; > +import java.io.Writer; > +import java.util.Map; > + > +import org.ofbiz.base.util.UtilValidate; > +import org.ofbiz.base.util.template.FreeMarkerWorker; > + > +import freemarker.core.Environment; > +import freemarker.template.SimpleScalar; > +import freemarker.template.Template; > +import freemarker.template.TemplateException; > +import freemarker.template.TemplateModelException; > +import freemarker.template.TemplateTransformModel; > + > +public class IncludeTemplateTransform implements TemplateTransformModel { > + > + public final static String module = IncludeTemplateTransform.class.getName(); > + > + public Writer getWriter(final Writer out, Map args) { > + final StringBuilder buf = new StringBuilder(); > + final String templateLocation = this.getTemplateLocation(args); > + > + return new Writer(out) { > + public void write(char cbuf[], int off, int len) { > + buf.append(cbuf, off, len); > + } > + > + public void flush() throws IOException { > + out.flush(); > + } > + > + public void close() throws IOException { > + try { > + Environment env = Environment.getCurrentEnvironment(); > + Template template = FreeMarkerWorker.getTemplate(templateLocation); > + env.include(template); > + } catch (TemplateModelException e) { > + throw new IOException(e.getMessage()); > + } catch (TemplateException e) { > + throw new IOException(e.getMessage()); > + } > + } > + }; > + } > + > + private String getTemplateLocation(Map args) { > + Object templateLocationObj = args.get("location"); > + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { > + return ((SimpleScalar) templateLocationObj).getAsString(); > + } > + return null; > + } > +} > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:keywords = "Date Rev Author URL Id" > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > > |
Administrator
|
I'm not sure it's the reason but with the Freemarker include directive you can't get a file out of the webapp root (there is no real
absolute path option) Jacques From: "Adrian Crum" <[hidden email]> > Why is this necessary? Freemarker already has an include directive. > > -Adrian > > [hidden email] wrote: >> Author: lektran >> Date: Mon Jun 15 10:18:55 2009 >> New Revision: 784712 >> >> URL: http://svn.apache.org/viewvc?rev=784712&view=rev >> Log: >> Add a new template transform for including templates in freemarker templates using component notation: >> <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> >> >> Added: >> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) >> Modified: >> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> >> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) >> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 >> @@ -27,3 +27,4 @@ >> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform >> >> Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) >> +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 >> @@ -0,0 +1,73 @@ >> +/******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webapp.ftl; >> + >> +import java.io.IOException; >> +import java.io.Writer; >> +import java.util.Map; >> + >> +import org.ofbiz.base.util.UtilValidate; >> +import org.ofbiz.base.util.template.FreeMarkerWorker; >> + >> +import freemarker.core.Environment; >> +import freemarker.template.SimpleScalar; >> +import freemarker.template.Template; >> +import freemarker.template.TemplateException; >> +import freemarker.template.TemplateModelException; >> +import freemarker.template.TemplateTransformModel; >> + >> +public class IncludeTemplateTransform implements TemplateTransformModel { >> + >> + public final static String module = IncludeTemplateTransform.class.getName(); >> + >> + public Writer getWriter(final Writer out, Map args) { >> + final StringBuilder buf = new StringBuilder(); >> + final String templateLocation = this.getTemplateLocation(args); >> + + return new Writer(out) { >> + public void write(char cbuf[], int off, int len) { >> + buf.append(cbuf, off, len); >> + } >> + >> + public void flush() throws IOException { >> + out.flush(); >> + } >> + >> + public void close() throws IOException { >> + try { >> + Environment env = Environment.getCurrentEnvironment(); >> + Template template = FreeMarkerWorker.getTemplate(templateLocation); >> + env.include(template); >> + } catch (TemplateModelException e) { >> + throw new IOException(e.getMessage()); >> + } catch (TemplateException e) { >> + throw new IOException(e.getMessage()); >> + } >> + } >> + }; >> + } >> + + private String getTemplateLocation(Map args) { >> + Object templateLocationObj = args.get("location"); >> + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { >> + return ((SimpleScalar) templateLocationObj).getAsString(); >> + } >> + return null; >> + } >> +} >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:keywords = "Date Rev Author URL Id" >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> >> > |
Use a file: URL.
-Adrian Jacques Le Roux wrote: > I'm not sure it's the reason but with the Freemarker include directive > you can't get a file out of the webapp root (there is no real absolute > path option) > > Jacques > > From: "Adrian Crum" <[hidden email]> >> Why is this necessary? Freemarker already has an include directive. >> >> -Adrian >> >> [hidden email] wrote: >>> Author: lektran >>> Date: Mon Jun 15 10:18:55 2009 >>> New Revision: 784712 >>> >>> URL: http://svn.apache.org/viewvc?rev=784712&view=rev >>> Log: >>> Add a new template transform for including templates in freemarker >>> templates using component notation: >>> <@includeTemplate >>> location="component://common/webcommon/includes/cctypes.ftl"/> >>> >>> Added: >>> >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> (with props) >>> Modified: >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> >>> Modified: >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff >>> >>> ============================================================================== >>> >>> --- >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> (original) >>> +++ >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> Mon Jun 15 10:18:55 2009 >>> @@ -27,3 +27,4 @@ >>> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >>> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >>> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >>> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform >>> >>> Added: >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto >>> >>> ============================================================================== >>> >>> --- >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> (added) >>> +++ >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> Mon Jun 15 10:18:55 2009 >>> @@ -0,0 +1,73 @@ >>> +/******************************************************************************* >>> >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> >>> +package org.ofbiz.webapp.ftl; >>> + >>> +import java.io.IOException; >>> +import java.io.Writer; >>> +import java.util.Map; >>> + >>> +import org.ofbiz.base.util.UtilValidate; >>> +import org.ofbiz.base.util.template.FreeMarkerWorker; >>> + >>> +import freemarker.core.Environment; >>> +import freemarker.template.SimpleScalar; >>> +import freemarker.template.Template; >>> +import freemarker.template.TemplateException; >>> +import freemarker.template.TemplateModelException; >>> +import freemarker.template.TemplateTransformModel; >>> + >>> +public class IncludeTemplateTransform implements >>> TemplateTransformModel { >>> + >>> + public final static String module = >>> IncludeTemplateTransform.class.getName(); >>> + >>> + public Writer getWriter(final Writer out, Map args) { >>> + final StringBuilder buf = new StringBuilder(); >>> + final String templateLocation = this.getTemplateLocation(args); >>> + + return new Writer(out) { >>> + public void write(char cbuf[], int off, int len) { >>> + buf.append(cbuf, off, len); >>> + } >>> + >>> + public void flush() throws IOException { >>> + out.flush(); >>> + } >>> + >>> + public void close() throws IOException { >>> + try { >>> + Environment env = >>> Environment.getCurrentEnvironment(); >>> + Template template = >>> FreeMarkerWorker.getTemplate(templateLocation); >>> + env.include(template); >>> + } catch (TemplateModelException e) { >>> + throw new IOException(e.getMessage()); >>> + } catch (TemplateException e) { >>> + throw new IOException(e.getMessage()); >>> + } >>> + } >>> + }; >>> + } >>> + + private String getTemplateLocation(Map args) { >>> + Object templateLocationObj = args.get("location"); >>> + if (templateLocationObj != null && templateLocationObj >>> instanceof SimpleScalar) { >>> + return ((SimpleScalar) templateLocationObj).getAsString(); >>> + } >>> + return null; >>> + } >>> +} >>> >>> Propchange: >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> >>> ------------------------------------------------------------------------------ >>> >>> svn:eol-style = native >>> >>> Propchange: >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> >>> ------------------------------------------------------------------------------ >>> >>> svn:keywords = "Date Rev Author URL Id" >>> >>> Propchange: >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>> >>> ------------------------------------------------------------------------------ >>> >>> svn:mime-type = text/plain >>> >>> >>> >> > > > |
Administrator
|
I never tried, thanks!
Jacques From: "Adrian Crum" <[hidden email]> > Use a file: URL. > > -Adrian > > Jacques Le Roux wrote: >> I'm not sure it's the reason but with the Freemarker include directive you can't get a file out of the webapp root (there is no >> real absolute path option) >> >> Jacques >> >> From: "Adrian Crum" <[hidden email]> >>> Why is this necessary? Freemarker already has an include directive. >>> >>> -Adrian >>> >>> [hidden email] wrote: >>>> Author: lektran >>>> Date: Mon Jun 15 10:18:55 2009 >>>> New Revision: 784712 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=784712&view=rev >>>> Log: >>>> Add a new template transform for including templates in freemarker templates using component notation: >>>> <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> >>>> >>>> Added: >>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) >>>> Modified: >>>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>>> >>>> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff >>>> ============================================================================== >>>> --- >>>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) >>>> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 >>>> @@ -27,3 +27,4 @@ >>>> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >>>> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >>>> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >>>> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform >>>> >>>> Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto >>>> ============================================================================== >>>> --- >>>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) >>>> +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 >>>> @@ -0,0 +1,73 @@ >>>> +/******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.webapp.ftl; >>>> + >>>> +import java.io.IOException; >>>> +import java.io.Writer; >>>> +import java.util.Map; >>>> + >>>> +import org.ofbiz.base.util.UtilValidate; >>>> +import org.ofbiz.base.util.template.FreeMarkerWorker; >>>> + >>>> +import freemarker.core.Environment; >>>> +import freemarker.template.SimpleScalar; >>>> +import freemarker.template.Template; >>>> +import freemarker.template.TemplateException; >>>> +import freemarker.template.TemplateModelException; >>>> +import freemarker.template.TemplateTransformModel; >>>> + >>>> +public class IncludeTemplateTransform implements TemplateTransformModel { >>>> + >>>> + public final static String module = IncludeTemplateTransform.class.getName(); >>>> + >>>> + public Writer getWriter(final Writer out, Map args) { >>>> + final StringBuilder buf = new StringBuilder(); >>>> + final String templateLocation = this.getTemplateLocation(args); >>>> + + return new Writer(out) { >>>> + public void write(char cbuf[], int off, int len) { >>>> + buf.append(cbuf, off, len); >>>> + } >>>> + >>>> + public void flush() throws IOException { >>>> + out.flush(); >>>> + } >>>> + >>>> + public void close() throws IOException { >>>> + try { >>>> + Environment env = Environment.getCurrentEnvironment(); >>>> + Template template = FreeMarkerWorker.getTemplate(templateLocation); >>>> + env.include(template); >>>> + } catch (TemplateModelException e) { >>>> + throw new IOException(e.getMessage()); >>>> + } catch (TemplateException e) { >>>> + throw new IOException(e.getMessage()); >>>> + } >>>> + } >>>> + }; >>>> + } >>>> + + private String getTemplateLocation(Map args) { >>>> + Object templateLocationObj = args.get("location"); >>>> + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { >>>> + return ((SimpleScalar) templateLocationObj).getAsString(); >>>> + } >>>> + return null; >>>> + } >>>> +} >>>> >>>> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>>> ------------------------------------------------------------------------------ >>>> >>>> svn:eol-style = native >>>> >>>> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>>> ------------------------------------------------------------------------------ >>>> >>>> svn:keywords = "Date Rev Author URL Id" >>>> >>>> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >>>> ------------------------------------------------------------------------------ >>>> >>>> svn:mime-type = text/plain >>>> >>>> >>>> >>> >> >> >> > |
In reply to this post by Adrian Crum
I wanted to be able to use component:// paths, if it's not wanted I don't mind pulling it out as it was only 10 minutes work.
Regards Scott ----- Original Message ----- From: "Adrian Crum" <[hidden email]> To: [hidden email] Sent: Tuesday, June 16, 2009 12:39:45 AM (GMT+1000) Auto-Detected Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Why is this necessary? Freemarker already has an include directive. -Adrian [hidden email] wrote: > Author: lektran > Date: Mon Jun 15 10:18:55 2009 > New Revision: 784712 > > URL: http://svn.apache.org/viewvc?rev=784712&view=rev > Log: > Add a new template transform for including templates in freemarker templates using component notation: > <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> > > Added: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) > Modified: > ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > > Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff > ============================================================================== > --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) > +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 > @@ -27,3 +27,4 @@ > ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform > setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod > renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform > +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform > > Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto > ============================================================================== > --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) > +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 > @@ -0,0 +1,73 @@ > +/******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + *******************************************************************************/ > +package org.ofbiz.webapp.ftl; > + > +import java.io.IOException; > +import java.io.Writer; > +import java.util.Map; > + > +import org.ofbiz.base.util.UtilValidate; > +import org.ofbiz.base.util.template.FreeMarkerWorker; > + > +import freemarker.core.Environment; > +import freemarker.template.SimpleScalar; > +import freemarker.template.Template; > +import freemarker.template.TemplateException; > +import freemarker.template.TemplateModelException; > +import freemarker.template.TemplateTransformModel; > + > +public class IncludeTemplateTransform implements TemplateTransformModel { > + > + public final static String module = IncludeTemplateTransform.class.getName(); > + > + public Writer getWriter(final Writer out, Map args) { > + final StringBuilder buf = new StringBuilder(); > + final String templateLocation = this.getTemplateLocation(args); > + > + return new Writer(out) { > + public void write(char cbuf[], int off, int len) { > + buf.append(cbuf, off, len); > + } > + > + public void flush() throws IOException { > + out.flush(); > + } > + > + public void close() throws IOException { > + try { > + Environment env = Environment.getCurrentEnvironment(); > + Template template = FreeMarkerWorker.getTemplate(templateLocation); > + env.include(template); > + } catch (TemplateModelException e) { > + throw new IOException(e.getMessage()); > + } catch (TemplateException e) { > + throw new IOException(e.getMessage()); > + } > + } > + }; > + } > + > + private String getTemplateLocation(Map args) { > + Object templateLocationObj = args.get("location"); > + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { > + return ((SimpleScalar) templateLocationObj).getAsString(); > + } > + return null; > + } > +} > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:keywords = "Date Rev Author URL Id" > > Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > > |
If you search *.ftl for "<#include" you'll see that it is already being
done. -Adrian Scott Gray wrote: > I wanted to be able to use component:// paths, if it's not wanted I don't mind pulling it out as it was only 10 minutes work. > > Regards > Scott > > ----- Original Message ----- > From: "Adrian Crum" <[hidden email]> > To: [hidden email] > Sent: Tuesday, June 16, 2009 12:39:45 AM (GMT+1000) Auto-Detected > Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > > Why is this necessary? Freemarker already has an include directive. > > -Adrian > > [hidden email] wrote: >> Author: lektran >> Date: Mon Jun 15 10:18:55 2009 >> New Revision: 784712 >> >> URL: http://svn.apache.org/viewvc?rev=784712&view=rev >> Log: >> Add a new template transform for including templates in freemarker templates using component notation: >> <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> >> >> Added: >> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) >> Modified: >> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> >> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) >> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 >> @@ -27,3 +27,4 @@ >> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform >> >> Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) >> +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 >> @@ -0,0 +1,73 @@ >> +/******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webapp.ftl; >> + >> +import java.io.IOException; >> +import java.io.Writer; >> +import java.util.Map; >> + >> +import org.ofbiz.base.util.UtilValidate; >> +import org.ofbiz.base.util.template.FreeMarkerWorker; >> + >> +import freemarker.core.Environment; >> +import freemarker.template.SimpleScalar; >> +import freemarker.template.Template; >> +import freemarker.template.TemplateException; >> +import freemarker.template.TemplateModelException; >> +import freemarker.template.TemplateTransformModel; >> + >> +public class IncludeTemplateTransform implements TemplateTransformModel { >> + >> + public final static String module = IncludeTemplateTransform.class.getName(); >> + >> + public Writer getWriter(final Writer out, Map args) { >> + final StringBuilder buf = new StringBuilder(); >> + final String templateLocation = this.getTemplateLocation(args); >> + >> + return new Writer(out) { >> + public void write(char cbuf[], int off, int len) { >> + buf.append(cbuf, off, len); >> + } >> + >> + public void flush() throws IOException { >> + out.flush(); >> + } >> + >> + public void close() throws IOException { >> + try { >> + Environment env = Environment.getCurrentEnvironment(); >> + Template template = FreeMarkerWorker.getTemplate(templateLocation); >> + env.include(template); >> + } catch (TemplateModelException e) { >> + throw new IOException(e.getMessage()); >> + } catch (TemplateException e) { >> + throw new IOException(e.getMessage()); >> + } >> + } >> + }; >> + } >> + >> + private String getTemplateLocation(Map args) { >> + Object templateLocationObj = args.get("location"); >> + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { >> + return ((SimpleScalar) templateLocationObj).getAsString(); >> + } >> + return null; >> + } >> +} >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:keywords = "Date Rev Author URL Id" >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> >> > |
Ha well how about that, out it comes.
Regards Scott ----- Original Message ----- From: "Adrian Crum" <[hidden email]> To: [hidden email] Sent: Tuesday, June 16, 2009 8:18:10 AM (GMT+1000) Auto-Detected Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java If you search *.ftl for "<#include" you'll see that it is already being done. -Adrian Scott Gray wrote: > I wanted to be able to use component:// paths, if it's not wanted I don't mind pulling it out as it was only 10 minutes work. > > Regards > Scott > > ----- Original Message ----- > From: "Adrian Crum" <[hidden email]> > To: [hidden email] > Sent: Tuesday, June 16, 2009 12:39:45 AM (GMT+1000) Auto-Detected > Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > > Why is this necessary? Freemarker already has an include directive. > > -Adrian > > [hidden email] wrote: >> Author: lektran >> Date: Mon Jun 15 10:18:55 2009 >> New Revision: 784712 >> >> URL: http://svn.apache.org/viewvc?rev=784712&view=rev >> Log: >> Add a new template transform for including templates in freemarker templates using component notation: >> <@includeTemplate location="component://common/webcommon/includes/cctypes.ftl"/> >> >> Added: >> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (with props) >> Modified: >> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> >> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties (original) >> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Jun 15 10:18:55 2009 >> @@ -27,3 +27,4 @@ >> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform >> >> Added: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto >> ============================================================================== >> --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java (added) >> +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Mon Jun 15 10:18:55 2009 >> @@ -0,0 +1,73 @@ >> +/******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webapp.ftl; >> + >> +import java.io.IOException; >> +import java.io.Writer; >> +import java.util.Map; >> + >> +import org.ofbiz.base.util.UtilValidate; >> +import org.ofbiz.base.util.template.FreeMarkerWorker; >> + >> +import freemarker.core.Environment; >> +import freemarker.template.SimpleScalar; >> +import freemarker.template.Template; >> +import freemarker.template.TemplateException; >> +import freemarker.template.TemplateModelException; >> +import freemarker.template.TemplateTransformModel; >> + >> +public class IncludeTemplateTransform implements TemplateTransformModel { >> + >> + public final static String module = IncludeTemplateTransform.class.getName(); >> + >> + public Writer getWriter(final Writer out, Map args) { >> + final StringBuilder buf = new StringBuilder(); >> + final String templateLocation = this.getTemplateLocation(args); >> + >> + return new Writer(out) { >> + public void write(char cbuf[], int off, int len) { >> + buf.append(cbuf, off, len); >> + } >> + >> + public void flush() throws IOException { >> + out.flush(); >> + } >> + >> + public void close() throws IOException { >> + try { >> + Environment env = Environment.getCurrentEnvironment(); >> + Template template = FreeMarkerWorker.getTemplate(templateLocation); >> + env.include(template); >> + } catch (TemplateModelException e) { >> + throw new IOException(e.getMessage()); >> + } catch (TemplateException e) { >> + throw new IOException(e.getMessage()); >> + } >> + } >> + }; >> + } >> + >> + private String getTemplateLocation(Map args) { >> + Object templateLocationObj = args.get("location"); >> + if (templateLocationObj != null && templateLocationObj instanceof SimpleScalar) { >> + return ((SimpleScalar) templateLocationObj).getAsString(); >> + } >> + return null; >> + } >> +} >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:keywords = "Date Rev Author URL Id" >> >> Propchange: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> >> > |
Free forum by Nabble | Edit this page |