Albert Kam
2013-05-08 11:02:19 UTC
I have just faced this situation where the error message is not suffucient
to determine stacktrace of ftl-s that lead to the error.
So, i have an ftl file :
<@layout.main>
my page contents here,
calling another macro here : ${url.myUrlToAnotherPage(paramsHere)}
</@layout.main>
Now, in the url.ftl file, i have the function of myUrlToAnotherPage, which
calls other functions that exist in the url.ftl.
But the error message only display it like this :
Error on line 23, column 48 in lib/url.ftl
Expecting a string, date or number here, Expression finalValue is instead a
freemarker.template.SimpleSequence
The problematic instruction:
----------
==> return [on line 23, column 17 in lib/url.ftl] [on line 23, column 17 in
lib/url.ftl]
in user-directive layout.layout [on line 11, column 1 in
post/ad/no0035.ftl]
----------
With this error message, i know that the rror is on line 23, another
function called blah for example. But i dont know who calls blah, it's not
in the stack trace.
After some dirty removing parts of the page to get the culprit, i found out
that :
- wrap my page as a nested value for another macro (on line 11, displayed
on the error stacktrace)
- my page calls url.myUrlToAnotherPage function
- url.myUrlToAnotherPage calls blahblah function
- blahblah calls blah function
- blah function errors (on line 23, displayed on the error stacktrace)
The second thing i want to ask that is related with this is :
How do i debug like the simple System.out.println in freemarker functions ?
Do i have to bind and call the java functions or something cool exists
already in freemarker to achieve this ?
Thank you !
to determine stacktrace of ftl-s that lead to the error.
So, i have an ftl file :
<@layout.main>
my page contents here,
calling another macro here : ${url.myUrlToAnotherPage(paramsHere)}
</@layout.main>
Now, in the url.ftl file, i have the function of myUrlToAnotherPage, which
calls other functions that exist in the url.ftl.
But the error message only display it like this :
Error on line 23, column 48 in lib/url.ftl
Expecting a string, date or number here, Expression finalValue is instead a
freemarker.template.SimpleSequence
The problematic instruction:
----------
==> return [on line 23, column 17 in lib/url.ftl] [on line 23, column 17 in
lib/url.ftl]
in user-directive layout.layout [on line 11, column 1 in
post/ad/no0035.ftl]
----------
With this error message, i know that the rror is on line 23, another
function called blah for example. But i dont know who calls blah, it's not
in the stack trace.
After some dirty removing parts of the page to get the culprit, i found out
that :
- wrap my page as a nested value for another macro (on line 11, displayed
on the error stacktrace)
- my page calls url.myUrlToAnotherPage function
- url.myUrlToAnotherPage calls blahblah function
- blahblah calls blah function
- blah function errors (on line 23, displayed on the error stacktrace)
The second thing i want to ask that is related with this is :
How do i debug like the simple System.out.println in freemarker functions ?
Do i have to bind and call the java functions or something cool exists
already in freemarker to achieve this ?
Thank you !
--
Do not pursue the past. Do not lose yourself in the future.
The past no longer is. The future has not yet come.
Looking deeply at life as it is in the very here and now,
the practitioner dwells in stability and freedom.
(Thich Nhat Hanh)
Do not pursue the past. Do not lose yourself in the future.
The past no longer is. The future has not yet come.
Looking deeply at life as it is in the very here and now,
the practitioner dwells in stability and freedom.
(Thich Nhat Hanh)