freemarker-devel Mailing List for FreeMarker template engine (Page 2)
Generates text that depends on changing data (like dynamic HTML).
Brought to you by:
revusky
This list is closed, nobody may subscribe to it.
2000 |
Jan
(4) |
Feb
|
Mar
|
Apr
(4) |
May
(2) |
Jun
(47) |
Jul
(7) |
Aug
(15) |
Sep
|
Oct
(5) |
Nov
(9) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(39) |
Feb
(27) |
Mar
(18) |
Apr
(25) |
May
(44) |
Jun
(35) |
Jul
(12) |
Aug
(66) |
Sep
(44) |
Oct
(36) |
Nov
(31) |
Dec
(2) |
2002 |
Jan
(11) |
Feb
(16) |
Mar
(342) |
Apr
(158) |
May
(387) |
Jun
(288) |
Jul
(185) |
Aug
(225) |
Sep
(400) |
Oct
(518) |
Nov
(238) |
Dec
(453) |
2003 |
Jan
(627) |
Feb
(425) |
Mar
(350) |
Apr
(250) |
May
(348) |
Jun
(473) |
Jul
(442) |
Aug
(335) |
Sep
(146) |
Oct
(82) |
Nov
(141) |
Dec
(56) |
2004 |
Jan
(125) |
Feb
(127) |
Mar
(144) |
Apr
(16) |
May
(42) |
Jun
(30) |
Jul
(27) |
Aug
(51) |
Sep
(64) |
Oct
(50) |
Nov
(39) |
Dec
(27) |
2005 |
Jan
(76) |
Feb
(13) |
Mar
(33) |
Apr
(63) |
May
(57) |
Jun
(399) |
Jul
(95) |
Aug
(64) |
Sep
(44) |
Oct
(112) |
Nov
(76) |
Dec
(39) |
2006 |
Jan
|
Feb
(60) |
Mar
(139) |
Apr
(103) |
May
(124) |
Jun
(59) |
Jul
(49) |
Aug
(24) |
Sep
(26) |
Oct
(3) |
Nov
(20) |
Dec
(17) |
2007 |
Jan
(13) |
Feb
(7) |
Mar
(23) |
Apr
(37) |
May
(45) |
Jun
(47) |
Jul
(60) |
Aug
(84) |
Sep
(32) |
Oct
(24) |
Nov
(43) |
Dec
(32) |
2008 |
Jan
(27) |
Feb
(35) |
Mar
(80) |
Apr
(124) |
May
(22) |
Jun
(9) |
Jul
(54) |
Aug
(55) |
Sep
(21) |
Oct
(26) |
Nov
(39) |
Dec
(21) |
2009 |
Jan
(20) |
Feb
(42) |
Mar
(53) |
Apr
(8) |
May
|
Jun
(17) |
Jul
(11) |
Aug
(4) |
Sep
(61) |
Oct
(14) |
Nov
(13) |
Dec
(16) |
2010 |
Jan
(29) |
Feb
(56) |
Mar
(67) |
Apr
(3) |
May
(58) |
Jun
(63) |
Jul
(117) |
Aug
(35) |
Sep
(15) |
Oct
(2) |
Nov
(3) |
Dec
(4) |
2011 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(47) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
(7) |
Nov
|
Dec
(3) |
2012 |
Jan
|
Feb
(9) |
Mar
(11) |
Apr
(9) |
May
|
Jun
(4) |
Jul
(1) |
Aug
(14) |
Sep
(7) |
Oct
(6) |
Nov
|
Dec
(3) |
2013 |
Jan
(8) |
Feb
(3) |
Mar
(8) |
Apr
(4) |
May
(5) |
Jun
(36) |
Jul
(52) |
Aug
(8) |
Sep
(1) |
Oct
(9) |
Nov
(17) |
Dec
(7) |
2014 |
Jan
(3) |
Feb
(4) |
Mar
(2) |
Apr
(2) |
May
(7) |
Jun
(7) |
Jul
(28) |
Aug
(16) |
Sep
(6) |
Oct
(3) |
Nov
(1) |
Dec
|
2015 |
Jan
(8) |
Feb
(3) |
Mar
(2) |
Apr
(4) |
May
(13) |
Jun
(48) |
Jul
(9) |
Aug
(9) |
Sep
(22) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2016 |
Jan
(8) |
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: MG 2. <dil...@mo...> - 2016-01-27 17:39:46
|
Hi There, I started using the Free Marker today. <#if record.quantity?length == 2> The above seems to be false. When I switch this to !=2 it seems to be OK. I just want to show a bit of text when the quantity is 2 What I'm I doing incorrectly? -- View this message in context: http://freemarker.624813.n4.nabble.com/Comparison-Issue-tp4655606.html Sent from the freemarker-devel mailing list archive at Nabble.com. |
From: Christoph R. <c.r...@sy...> - 2015-12-17 06:57:52
|
Dear Freemarker community, I would like to suggest and introduce a new tool for this page: http://freemarker.incubator.apache.org/poweredBy.html *Synesty Studio* URL: https://apps.synesty.com/en-us Synesty Studio <https://apps.synesty.com/en-us> is a *Cloud Automation Platform* to connect all kinds of APIs and services without programming by providing a simple drag&drop user interface and various Add-Ons. Freemarker is a central element and is used for advanced features like boolean logic expressions, defining filters and internal scripting. You can test it instantly here <https://apps.synesty.com/transformy/en-us?action=executeStep&mode=example>. Here is a screenshot showing a simple example. [image: Inline-Bild 1] We are the vendor behind this tool. Feel free to contact me if you have questions. Thanks and best regards, Christoph -- Christoph Rüger, Geschäftsführer Synesty <http://synesty.com/> - Automatisierung, Schnittstellen, Datenfeeds Tel.: +49 3641/559649 Xing: https://www.xing.com/profile/Christoph_Rueger2 LinkedIn: http://www.linkedin.com/pub/christoph-rueger/a/685/198 -- Synesty GmbH Moritz-von-Rohr-Str. 1a 07745 Jena Tel.: +49 3641 559649 Fax.: +49 3641 5596499 Internet: http://synesty.com Geschäftsführer: Christoph Rüger Unternehmenssitz: Jena Handelsregister B beim Amtsgericht: Jena Handelsregister-Nummer: HRB 508766 Ust-IdNr.: DE287564982 |
From: Pratt, M. <mp...@ho...> - 2015-11-30 17:23:10
|
Hi all, I wanted to send a blurb about my organization and how we have been using Freemarker for inclusion on your Powered By page. I’m a Java developer at homeadvisor.com, and in the past year or so we’ve started migrating from a monolithic architecture of a few heavy web applications, to a larger collection of lightweight microservices built on Spring Boot + Freemarker. We have a lot of older JSPs that don’t play nicely in embedded tomcat, so we’ve been moving them to Freemarker templates. Regards, Michael Pratt http://www.homeadvisor.com HomeAdvisor is a marketplace that connects home owners with prescreened service professionals. As we move from a monolithic architecture to microservices, Freemarker has become our template engine of choice for replacing legacy JSPs. Some of our most critical applications, including service monitoring, are now built using Freemarker. |
From: Daniel D. <dd...@fr...> - 2015-10-31 08:31:49
|
Hello, Please come over to de...@fr... and let's discuss what you would like to work on. If you aren't sure, there's a list of tasks on http://freemarker.org/contribute.html (though at the moment we have a DNS problem... hopefully it will go away soon). -- Thanks, Daniel Dekany Friday, October 30, 2015, 2:26:58 PM, pga...@gm... wrote: > Hello, > > I would like to contribute to this project. I am a software developer, > primarily working with Java/J2EE technologies. Will be really interested in > helping with development activities towards the success of this project. > Looking forward to hearing from you asap. > > Thanks and regards, > Priya |
From: Daniel D. <dd...@fr...> - 2015-10-31 08:31:46
|
Dear subscribers, FreeMarker's sourceforge.net mailing lists are retired, new postings usually will only appear on the new mailing list. Both freemarker-devel and freemarker-user are replaced by a single list, de...@fr.... To subscribe, just write an empty mail to dev...@fr...! Thank you, and sorry for the inconvenience! -- Best regards, Daniel Dekany |
From: <pga...@gm...> - 2015-10-30 13:39:38
|
Hello, I would like to contribute to this project. I am a software developer, primarily working with Java/J2EE technologies. Will be really interested in helping with development activities towards the success of this project. Looking forward to hearing from you asap. Thanks and regards, Priya -- View this message in context: http://freemarker.624813.n4.nabble.com/Looking-for-contributors-as-part-of-Apache-incubation-tp4655445p4655588.html Sent from the freemarker-devel mailing list archive at Nabble.com. |
From: Daniel D. <dd...@fr...> - 2015-09-24 20:34:04
|
Dear subscribers, FreeMarker's sourceforge.net mailing lists are retired, new postings usually will only appear on the new mailing list. Both freemarker-devel and freemarker-user are replaced by a single list, de...@fr.... To subscribe, just write an empty mail to dev...@fr...! Thank you, and sorry for the inconvenience! -- Best regards, Daniel Dekany |
From: Woonsan Ko <wo...@ap...> - 2015-09-15 20:21:46
|
+1 Woonsan On Mon, Sep 14, 2015 at 2:10 PM, Daniel Dekany <dd...@fr...> wrote: > Yet another voting with lazy consensus... silence gives assent. 72 > hours left. > > I think we have to drop JSP 1.2 support in 2.3.24 because of legal > reasons. The jps-api 1.2 artifact can't be found in the Maven Central > Repo, and it can't be upload for legal reasons. This means that as far > as FreeMarker 2.3.x depends on it, it can't be built without > developers getting that jar themselves and putting it into the Ivy > cache or something. (It has worked so far because freemarker.org has > hosted it in its own Ivy repo, but doing such legally gray things > won't go anymore as we move the site to the ASF's infrastructure.) > > JSP 1.2 was part of J2EE 1.3 (September 24, 2001), and was replaced by > JSP 2.0 in J2EE 1.4 (November 11, 2003). So hopefully not many users > will be hurt. > > -- > Thanks, > Daniel Dekany > |
From: Daniel D. <dd...@fr...> - 2015-09-14 18:11:08
|
Yet another voting with lazy consensus... silence gives assent. 72 hours left. I think we have to drop JSP 1.2 support in 2.3.24 because of legal reasons. The jps-api 1.2 artifact can't be found in the Maven Central Repo, and it can't be upload for legal reasons. This means that as far as FreeMarker 2.3.x depends on it, it can't be built without developers getting that jar themselves and putting it into the Ivy cache or something. (It has worked so far because freemarker.org has hosted it in its own Ivy repo, but doing such legally gray things won't go anymore as we move the site to the ASF's infrastructure.) JSP 1.2 was part of J2EE 1.3 (September 24, 2001), and was replaced by JSP 2.0 in J2EE 1.4 (November 11, 2003). So hopefully not many users will be hurt. -- Thanks, Daniel Dekany |
From: rajesh <raj...@sk...> - 2015-09-07 04:19:46
|
Thanks for your reply . I have posted this because i am newbie to freemarker . Ok i will check other page properties which cache the page so that same time is returned whenever the page is refreshed. Once again i am thanking you to reply for my post. -- View this message in context: http://freemarker.624813.n4.nabble.com/now-function-return-same-time-even-after-refreshing-the-page-tp4655567p4655575.html Sent from the freemarker-devel mailing list archive at Nabble.com. |
From: Woonsan Ko <w....@on...> - 2015-09-05 16:53:26
|
Thanks a lot! Cheers, Woonsan On Fri, Sep 4, 2015 at 5:41 PM, Daniel Dekany <dd...@fr...> wrote: > Yes, thanks, I have requested them, and now they have here: > https://github.com/apache/incubator-freemarker > https://github.com/apache/incubator-freemarker-site > https://github.com/apache/incubator-freemarker-docgen > > > Thursday, September 3, 2015, 5:38:52 AM, Woonsan Ko wrote: > > > Hi Daniel, > > > > That's great! > > Could we be benefited from GitHub integration (Apache git mirror on > > Github) as well? In other projects such as commons-scxml, it was done > > with INFRA ticket [1]. This could help more people get involved easily. > > > > Regards, > > > > Woonsan > > > > [1] https://issues.apache.org/jira/browse/INFRA-9961 > > > > On 9/2/15 5:17 PM, Daniel Dekany wrote: > >> As part of the incubation process at Apache Software Foundation, our 3 > >> main Git repos has been imported from GitHub into ASF's > >> infrastructure, and from now on, all commits must go there, not to > >> GitHub. > >> > >> Old repo URL -> New repo URL > >> https://github.com/freemarker/freemarker.git -> > https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git > >> https://github.com/freemarker/site.git -> > https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git > >> https://github.com/freemarker/docgen.git -> > https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git > >> > >> The repos can be cloned from the above URL-s, of course. > >> > >> Also note that the copyright headers etc. were changed so that the > >> owner is ASF now. > >> > > > > > > > ------------------------------------------------------------------------------ > > Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > > Get real-time metrics from all of your servers, apps and tools > > in one place. > > SourceForge users - Click here to start your Free Trial of Datadog now! > > http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 > > _______________________________________________ > > FreeMarker-devel mailing list > > Fre...@li... > > https://lists.sourceforge.net/lists/listinfo/freemarker-devel > > > > -- > Thanks, > Daniel Dekany > > > > ------------------------------------------------------------------------------ > _______________________________________________ > FreeMarker-devel mailing list > Fre...@li... > https://lists.sourceforge.net/lists/listinfo/freemarker-devel > -- w....@on... www.onehippo.com Boston - 745 Atlantic Ave, 8th Floor, Boston MA 02111 Amsterdam - Oosteinde 11, 1017 WT Amsterdam US +1 877 414 4776 (toll free) Europe +31(0)20 522 4466 |
From: Daniel D. <dd...@fr...> - 2015-09-05 11:11:19
|
Dear mailing subscribers, All FreeMarker activities are gradually moving over to the Apache Incubator, thus all sourceforge.net mailing lists are being retired. Both freemarker-devel and freemarker-user are replaced by de...@fr.... To subscribe, write an empty mail to dev...@fr.... Thank you, and sorry for the inconvenience! To receive notifications about commits (and later about Jira issues), write an empty e-mail to not...@fr.... P.S.: FreeMarker is an "incubating" Apache project, which means that it will either succeed of fail to become a real Apache project depending on if it can grow an *active* community. So if you want to help, see http://freemarker.org/contribute.html! -- Best regards, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-09-04 21:46:32
|
Seems something (not FreeMarker) caches those pages, or parts of the pages. If you change a query parameter, you cause a cache miss, hence the page gets regenerated. But this is not done be FreeMarker, but something outside it. Friday, September 4, 2015, 7:21:21 AM, rajesh wrote: > I am using *.now* function to get current time . But i am facing one issue > while using this built-in that i am getting same time whenever i am > refreshing the page . But i attached some query parameter with different > value then only the time get changed otherwise it won't . Can anyone please > provide help for this issue ? > > > > -- > View this message in context: > http://freemarker.624813.n4.nabble.com/now-function-return-same-time-even-after-refreshing-the-page-tp4655567.html > Sent from the freemarker-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > _______________________________________________ > FreeMarker-devel mailing list > Fre...@li... > https://lists.sourceforge.net/lists/listinfo/freemarker-devel > -- Thanks, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-09-04 21:42:04
|
Yes, thanks, I have requested them, and now they have here: https://github.com/apache/incubator-freemarker https://github.com/apache/incubator-freemarker-site https://github.com/apache/incubator-freemarker-docgen Thursday, September 3, 2015, 5:38:52 AM, Woonsan Ko wrote: > Hi Daniel, > > That's great! > Could we be benefited from GitHub integration (Apache git mirror on > Github) as well? In other projects such as commons-scxml, it was done > with INFRA ticket [1]. This could help more people get involved easily. > > Regards, > > Woonsan > > [1] https://issues.apache.org/jira/browse/INFRA-9961 > > On 9/2/15 5:17 PM, Daniel Dekany wrote: >> As part of the incubation process at Apache Software Foundation, our 3 >> main Git repos has been imported from GitHub into ASF's >> infrastructure, and from now on, all commits must go there, not to >> GitHub. >> >> Old repo URL -> New repo URL >> https://github.com/freemarker/freemarker.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git >> https://github.com/freemarker/site.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git >> https://github.com/freemarker/docgen.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git >> >> The repos can be cloned from the above URL-s, of course. >> >> Also note that the copyright headers etc. were changed so that the >> owner is ASF now. >> > > > ------------------------------------------------------------------------------ > Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > Get real-time metrics from all of your servers, apps and tools > in one place. > SourceForge users - Click here to start your Free Trial of Datadog now! > http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 > _______________________________________________ > FreeMarker-devel mailing list > Fre...@li... > https://lists.sourceforge.net/lists/listinfo/freemarker-devel > -- Thanks, Daniel Dekany |
From: rajesh <raj...@sk...> - 2015-09-04 05:42:34
|
I am using *.now* function to get current time . But i am facing one issue while using this built-in that i am getting same time whenever i am refreshing the page . But i attached some query parameter with different value then only the time get changed otherwise it won't . Can anyone please provide help for this issue ? -- View this message in context: http://freemarker.624813.n4.nabble.com/now-function-return-same-time-even-after-refreshing-the-page-tp4655567.html Sent from the freemarker-devel mailing list archive at Nabble.com. |
From: Woonsan Ko <wo...@ap...> - 2015-09-03 03:39:12
|
Hi Daniel, That's great! Could we be benefited from GitHub integration (Apache git mirror on Github) as well? In other projects such as commons-scxml, it was done with INFRA ticket [1]. This could help more people get involved easily. Regards, Woonsan [1] https://issues.apache.org/jira/browse/INFRA-9961 On 9/2/15 5:17 PM, Daniel Dekany wrote: > As part of the incubation process at Apache Software Foundation, our 3 > main Git repos has been imported from GitHub into ASF's > infrastructure, and from now on, all commits must go there, not to > GitHub. > > Old repo URL -> New repo URL > https://github.com/freemarker/freemarker.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git > https://github.com/freemarker/site.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git > https://github.com/freemarker/docgen.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git > > The repos can be cloned from the above URL-s, of course. > > Also note that the copyright headers etc. were changed so that the > owner is ASF now. > |
From: Daniel D. <dd...@fr...> - 2015-09-02 21:18:22
|
As part of the incubation process at Apache Software Foundation, our 3 main Git repos has been imported from GitHub into ASF's infrastructure, and from now on, all commits must go there, not to GitHub. Old repo URL -> New repo URL https://github.com/freemarker/freemarker.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git https://github.com/freemarker/site.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git https://github.com/freemarker/docgen.git -> https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git The repos can be cloned from the above URL-s, of course. Also note that the copyright headers etc. were changed so that the owner is ASF now. -- Thanks, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-09-02 00:03:45
|
This is a preview version, which however already contains the key 2.3.24 features. See change log here: http://freemarker.org/builds/2.3.24-pre01/_html/versions_2_3_24.html Download (includes all documentation): http://sourceforge.net/projects/freemarker/files/freemarker/2.3.24-preview-01/freemarker-2.3.24-pre01.tar.gz/download (Google App Engine compliant, binary only: http://sourceforge.net/projects/freemarker/files/freemarker/2.3.24-preview-01/freemarker-gae-2.3.24-pre01.jar/download) Please test for backward compatibility, and help polishing the new features! -- Thanks, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-09-01 00:25:31
|
So, we have the custom number formats stuff, and I hope it's very close to the final form. You can read about it here, under "Changes on the Java side" mostly: http://freemarker.org/builds/2.3.24-nightly/documentation/_html/versions_2_3_24.html Then see the JUnit tests in the repo has some examples: https://github.com/freemarker/freemarker/blob/2.3-gae/src/test/java/freemarker/core/NumberFormatTest.java Binary: http://freemarker.org/builds/2.3.24-nightly/freemarker.jar Let me know what do you think. -- Thanks, Daniel Dekany Friday, August 21, 2015, 3:19:36 PM, Ernst Plüss wrote: > Hello Daniel > > Many thanks for your extensive response! > > I didn't ask to work ahaead. I wanted to check whether I could > implement the featrue and create a pull request in reasonable time > > Actually I'm looking for something different. What I need is a way > to make sure *every* BigDecimal (or whathever type I'm after) is > transformed to a String by user defined code. Since the formatting > depends on the value of the BigDecimal, I cannot use a static pattern. > > As of now I registered a "formatBigDecimal()" function which does > this. But every now and then a developer forgets to use it and we end up with wrong output. > > I think writing > > ${x?string("@formatBigDecimal")} > > instead of > > formatBigDecimal(${value}) > > doesn't bring any benefit in my situation. > > Regards > Ernst > > > > 2015-08-21 14:55 GMT+02:00 Daniel Dekany <dd...@fr...>: > I haven't started working on that yet. I *hope* I can start it > tomorrow or so. So I'm not yet 100% sure how it will look. I only know > for sure that it must be finished during the next week. (: So I > recommend you to just quickly shove in your NumberFormat class where > FreeMarker creates the DecimalFormat-s, and wait what will happen next > week... You can't really work ahead. > > To answer your question, Environmen.formatNumber(Number) is and > remains a point where number formatting with the current format goes > through, of course. The interesting thing is though if how will number > formatters be represented (not java.text.NumberFormat anymore [*]), > and what object will create them. The (inherited) logic of FreeMarker > is that you specify a *string* as the "number_format" setting (which > can even be changed inside the template, in runtime), and then > internally that becomes to a cached(!) DecimalFormat object for the > current Locale. So certainly, there will be some simple interface like > freemarker.core.NumberFormatter, and then you will need to register a > freemarker.core.NumberFormatterFactory with a unique name (let's say > "price"), which then you can refer to like > cfg.setNumberFormat("@price"), <#setting numberFormat="@price">, > ${x?string("@price")}, etc. And so there, the factory has a chance to > cache. Furthermore, after the number format string was delegated to > the NumberFormatFactory based on the name after the "@", it will get > the format string for parsing, so that stuff like "@price 0.00" can be > implemented. So those are my initial thoughts. (I will review how date > formatting works, which has a similarly fancy architecture for a > while, only that's not a public API... yet.) > > *: Why not NumberFormat? Two reasons: > > (a) One important goal of pluggable number formatters will be > automatic unit printing. In some apps, the template authors > aren't supposed to print the units manually. Like ${price}, > where price is a number, should automatically print "1000 EUR" > or such. That requires the formatter to get the > TemplateNumberModel instead of just the Number, as it's the > TemplateNumberModel that carries the required meta-information. > > (b) Number format is way too bloated if users meant to implement it > for some ad-hoc number format. > > -- > Thanks, > Daniel Dekany > > > Friday, August 21, 2015, 11:20:12 AM, Ernst Plüss wrote: > >> Hello >> >> From >> http://stackoverflow.com/questions/32111234/how-to-implement-logic-for-bigdecimal-rendering-in-freemarker >> I learnded, that some kind of plugable number formatter should come soon. >> >> Is there alreday any code on github for this? >> >> If not, what's the general aproach add this functionality? After >> having a look at the sources, I think I could built this into >> Environmen.formatNumber(Number number). Is this the intended way to implement this? >> >> Regards >> Ernst >> > > |
From: Daniel D. <dd...@fr...> - 2015-09-01 00:19:59
|
I haven't managed to push FM 2.3.24 to RC1 state in time (far from it... will be several more nights), so it will be just a Preview release before moving the 3 main repos (freemarker, site, docgen) over to ASF. This preview release I *hope* to be able to do around 2015-09-02 00:00 GMT or so, and then I ask for the import. (And the monthly report is due on September 2nd... too bad, it might misses the progress.) BTW, this is about what's expected in the Preview: http://freemarker.org/builds/2.3.24-nightly/documentation/_html/versions_2_3_24.html There are some new key features here, such as auto-escaping, custom formatters, and "template configurers". (Binary: http://freemarker.org/builds/2.3.24-nightly/freemarker.jar) As of ASF releases, seems the first one will be the RC1 then, some weeks later from now, not 2.3.24 final yet. -- Best regards, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-08-25 19:46:51
|
The most important new feature in the forthcoming 2.3.24 is auto-escaping, which deprecates the #escape directive, and works very differently than that. The major reason of the difference is that it treats print-ready (like already escaped) text as a value of its own type, called "markup output". This opens up possibilities like automatically preventing double-escaping for values coming from the data-model (think of i10n messages), among others. See auto-escaping tutorial here: http://freemarker.org/builds/2.3.24-nightly/documentation/_html/dgui_misc_autoescaping.html (Also the binary: http://freemarker.org/builds/2.3.24-nightly/freemarker.jar) Anyone has any insights? BTW, here's the version history so far: http://freemarker.org/builds/2.3.24-nightly/documentation/_html/versions_2_3_24.html The other major feature there is the template_configurers setting: http://freemarker.org/builds/2.3.24-nightly/documentation/_html/pgui_config_templateconfigurers.html And yet another major feature will be the more flexible number and maybe date/time formatting, with pluggable formatters (no more DecimalFormat restrictions), but that was barely started as of yet. -- Best regards, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-08-23 11:44:34
|
Friday, August 21, 2015, 2:55:26 PM, Daniel Dekany wrote: > I haven't started working on that yet. I *hope* I can start it > tomorrow or so. It's "or so"... I'm lucky if I can start it tomorrow from now. -- Thanks, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2015-08-21 19:46:54
|
Friday, August 21, 2015, 3:19:36 PM, Ernst Plüss wrote: > Hello Daniel > > Many thanks for your extensive response! > > I didn't ask to work ahaead. I wanted to check whether I could > implement the featrue and create a pull request in reasonable time > > Actually I'm looking for something different. What I need is a way > to make sure *every* BigDecimal (or whathever type I'm after) is > transformed to a String by user defined code. Since the formatting > depends on the value of the BigDecimal, I cannot use a static pattern. > > As of now I registered a "formatBigDecimal()" function which does > this. But every now and then a developer forgets to use it and we end up with wrong output. > > I think writing > > ${x?string("@formatBigDecimal")} > > instead of > > formatBigDecimal(${value}) > > doesn't bring any benefit in my situation. It sounds like something that you will be able to handle easily with the planned formatter feature. You have a shared singleton Configuration object, and there you call setNumberFormat(String) with "@formatBigDecimal" or whatever you will call it. As your registered formatter, and hence your own Java code gets the Number to format (the whole TemplateNumberModel, actually), it can decide what to do based on the number type and value. (Parsing the part after the @name is also entirely up to the custom number formatter; the 0.00 patterns was just an example.) So, in the template you just write ${x}. -- Thanks, Daniel Dekany > Regards > Ernst > > > > 2015-08-21 14:55 GMT+02:00 Daniel Dekany <dd...@fr...>: > I haven't started working on that yet. I *hope* I can start it > tomorrow or so. So I'm not yet 100% sure how it will look. I only know > for sure that it must be finished during the next week. (: So I > recommend you to just quickly shove in your NumberFormat class where > FreeMarker creates the DecimalFormat-s, and wait what will happen next > week... You can't really work ahead. > > To answer your question, Environmen.formatNumber(Number) is and > remains a point where number formatting with the current format goes > through, of course. The interesting thing is though if how will number > formatters be represented (not java.text.NumberFormat anymore [*]), > and what object will create them. The (inherited) logic of FreeMarker > is that you specify a *string* as the "number_format" setting (which > can even be changed inside the template, in runtime), and then > internally that becomes to a cached(!) DecimalFormat object for the > current Locale. So certainly, there will be some simple interface like > freemarker.core.NumberFormatter, and then you will need to register a > freemarker.core.NumberFormatterFactory with a unique name (let's say > "price"), which then you can refer to like > cfg.setNumberFormat("@price"), <#setting numberFormat="@price">, > ${x?string("@price")}, etc. And so there, the factory has a chance to > cache. Furthermore, after the number format string was delegated to > the NumberFormatFactory based on the name after the "@", it will get > the format string for parsing, so that stuff like "@price 0.00" can be > implemented. So those are my initial thoughts. (I will review how date > formatting works, which has a similarly fancy architecture for a > while, only that's not a public API... yet.) > > *: Why not NumberFormat? Two reasons: > > (a) One important goal of pluggable number formatters will be > automatic unit printing. In some apps, the template authors > aren't supposed to print the units manually. Like ${price}, > where price is a number, should automatically print "1000 EUR" > or such. That requires the formatter to get the > TemplateNumberModel instead of just the Number, as it's the > TemplateNumberModel that carries the required meta-information. > > (b) Number format is way too bloated if users meant to implement it > for some ad-hoc number format. > > -- > Thanks, > Daniel Dekany > > > Friday, August 21, 2015, 11:20:12 AM, Ernst Plüss wrote: > >> Hello >> >> From >> http://stackoverflow.com/questions/32111234/how-to-implement-logic-for-bigdecimal-rendering-in-freemarker >> I learnded, that some kind of plugable number formatter should come soon. >> >> Is there alreday any code on github for this? >> >> If not, what's the general aproach add this functionality? After >> having a look at the sources, I think I could built this into >> Environmen.formatNumber(Number number). Is this the intended way to implement this? >> >> Regards >> Ernst >> > > |
From: Ernst P. <ern...@gm...> - 2015-08-21 13:19:44
|
Hello Daniel Many thanks for your extensive response! I didn't ask to work ahaead. I wanted to check whether I could implement the featrue and create a pull request in reasonable time ;-) . Actually I'm looking for something different. What I need is a way to make sure *every* BigDecimal (or whathever type I'm after) is transformed to a String by user defined code. Since the formatting depends on the value of the BigDecimal, I cannot use a static pattern. As of now I registered a "formatBigDecimal()" function which does this. But every now and then a developer forgets to use it and we end up with wrong output. I think writing ${x?string("@formatBigDecimal")} instead of formatBigDecimal(${value}) doesn't bring any benefit in my situation. Regards Ernst 2015-08-21 14:55 GMT+02:00 Daniel Dekany <dd...@fr...>: > I haven't started working on that yet. I *hope* I can start it > tomorrow or so. So I'm not yet 100% sure how it will look. I only know > for sure that it must be finished during the next week. (: So I > recommend you to just quickly shove in your NumberFormat class where > FreeMarker creates the DecimalFormat-s, and wait what will happen next > week... You can't really work ahead. > > To answer your question, Environmen.formatNumber(Number) is and > remains a point where number formatting with the current format goes > through, of course. The interesting thing is though if how will number > formatters be represented (not java.text.NumberFormat anymore [*]), > and what object will create them. The (inherited) logic of FreeMarker > is that you specify a *string* as the "number_format" setting (which > can even be changed inside the template, in runtime), and then > internally that becomes to a cached(!) DecimalFormat object for the > current Locale. So certainly, there will be some simple interface like > freemarker.core.NumberFormatter, and then you will need to register a > freemarker.core.NumberFormatterFactory with a unique name (let's say > "price"), which then you can refer to like > cfg.setNumberFormat("@price"), <#setting numberFormat="@price">, > ${x?string("@price")}, etc. And so there, the factory has a chance to > cache. Furthermore, after the number format string was delegated to > the NumberFormatFactory based on the name after the "@", it will get > the format string for parsing, so that stuff like "@price 0.00" can be > implemented. So those are my initial thoughts. (I will review how date > formatting works, which has a similarly fancy architecture for a > while, only that's not a public API... yet.) > > *: Why not NumberFormat? Two reasons: > > (a) One important goal of pluggable number formatters will be > automatic unit printing. In some apps, the template authors > aren't supposed to print the units manually. Like ${price}, > where price is a number, should automatically print "1000 EUR" > or such. That requires the formatter to get the > TemplateNumberModel instead of just the Number, as it's the > TemplateNumberModel that carries the required meta-information. > > (b) Number format is way too bloated if users meant to implement it > for some ad-hoc number format. > > -- > Thanks, > Daniel Dekany > > > Friday, August 21, 2015, 11:20:12 AM, Ernst Plüss wrote: > > > Hello > > > > From > > > http://stackoverflow.com/questions/32111234/how-to-implement-logic-for-bigdecimal-rendering-in-freemarker > > I learnded, that some kind of plugable number formatter should come soon. > > > > Is there alreday any code on github for this? > > > > If not, what's the general aproach add this functionality? After > > having a look at the sources, I think I could built this into > > Environmen.formatNumber(Number number). Is this the intended way to > implement this? > > > > Regards > > Ernst > > > > |
From: Daniel D. <dd...@fr...> - 2015-08-21 12:55:46
|
I haven't started working on that yet. I *hope* I can start it tomorrow or so. So I'm not yet 100% sure how it will look. I only know for sure that it must be finished during the next week. (: So I recommend you to just quickly shove in your NumberFormat class where FreeMarker creates the DecimalFormat-s, and wait what will happen next week... You can't really work ahead. To answer your question, Environmen.formatNumber(Number) is and remains a point where number formatting with the current format goes through, of course. The interesting thing is though if how will number formatters be represented (not java.text.NumberFormat anymore [*]), and what object will create them. The (inherited) logic of FreeMarker is that you specify a *string* as the "number_format" setting (which can even be changed inside the template, in runtime), and then internally that becomes to a cached(!) DecimalFormat object for the current Locale. So certainly, there will be some simple interface like freemarker.core.NumberFormatter, and then you will need to register a freemarker.core.NumberFormatterFactory with a unique name (let's say "price"), which then you can refer to like cfg.setNumberFormat("@price"), <#setting numberFormat="@price">, ${x?string("@price")}, etc. And so there, the factory has a chance to cache. Furthermore, after the number format string was delegated to the NumberFormatFactory based on the name after the "@", it will get the format string for parsing, so that stuff like "@price 0.00" can be implemented. So those are my initial thoughts. (I will review how date formatting works, which has a similarly fancy architecture for a while, only that's not a public API... yet.) *: Why not NumberFormat? Two reasons: (a) One important goal of pluggable number formatters will be automatic unit printing. In some apps, the template authors aren't supposed to print the units manually. Like ${price}, where price is a number, should automatically print "1000 EUR" or such. That requires the formatter to get the TemplateNumberModel instead of just the Number, as it's the TemplateNumberModel that carries the required meta-information. (b) Number format is way too bloated if users meant to implement it for some ad-hoc number format. -- Thanks, Daniel Dekany Friday, August 21, 2015, 11:20:12 AM, Ernst Plüss wrote: > Hello > > From > http://stackoverflow.com/questions/32111234/how-to-implement-logic-for-bigdecimal-rendering-in-freemarker > I learnded, that some kind of plugable number formatter should come soon. > > Is there alreday any code on github for this? > > If not, what's the general aproach add this functionality? After > having a look at the sources, I think I could built this into > Environmen.formatNumber(Number number). Is this the intended way to implement this? > > Regards > Ernst > |