Tom:

Thanks for your help...  I see now that the syntax I was trying to use was
added in Freemarker 2.3.7

http://freemarker.sourceforge.net/docs/versions_2_3_7.html

Now... is an empty string the right result?  maybe ${error?default("<!--
null error -->")} ?

is that overkill?

Joe

On 1/20/07, Tom Schneider <[EMAIL PROTECTED]> wrote:

Joe,
${error} being null would imply that you have an item in the action
errors Collection that is null.  (e.g. {"Error1", "Error2", null,
"Error4})  It seems like that would be an issue that occurs as the
errors are being populated.  (I can't think of a valid use case where
you would have a null error message.)

In spite of that, you could modify the template to handle this more
gracefully using the default function:
  <li><span class="errorMessage">${error?default("")}</span></li>

In general, I think there is room for improvement in the UI tags error
handling/reporting.  I've already submitted patches for null handling in
the select tags--this is just another instance were nulls slip through
the cracks.
Tom

Joe Germuska wrote:
> I've ran into an odd problem of my own and while I'm troubleshooting
> it, I'm
> hitting some problems or confusion with Freemarker as it is used for
> the S2
> UI tags.  Can anyone help me understand this better?
>
> I was getting a big yellow and red Freemarker trace in my rendered page
> because an ${error} expression yielded null when using <s:actionerror>.
> I'm assuming this is the result of an uncaught NullPointerException
being
> caught by Struts2, as the message for NPEs is often itself null.  I
> actually
> haven't yet figured out where this logic is, so question 1 is "which
> class
> is actually catching my exception and routing to an 'error' page?"
>
> Then, it seems like our templates should be prepared for the
> possibility of
> a null message, especially if they are being invoked when an
> unexpected NPE
> is caught -- a not unlikely scenario.
>
> So I found this page of Freemarker documentation explaining how to
> deal with
> empty values:
>
>
http://freemarker.sourceforge.net/docs/dgui_template_exp.html#dgui_template_exp_missing
>
>
> except that it doesn't seem to apply to the version of Freemarker (2.3.4
)
> that we're using.  They're only up to 2.3.8 and they make a big fuss
> about
> nulls -- can this be new just in those minor releases?  Or is there
> something I should understand about why those rules don't apply to
> Freemarker as it is used in S2?  I get an error when I try to use the
> syntax
> for handling missing values
>  ${error!"null"}
> and the syntax for testing for nulls
>  ${error??}
>
> What am I missing?
>
> After I get all that cleared up, the last question is whether or not we
> ought to make a change to template/simple/actionerror.ftl so that it
> handles
> this gracefully.  I guess I already think the answer is "yes", and I'd
> do it
> myself, except apparently I haven't found Freemarker syntax
documentation
> which is right for our environment.
>
> Thanks
>  Joe
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com

"The truth is that we learned from João forever to be out of tune."
-- Caetano Veloso

Reply via email to