>I wouldn't want any modification made to a targetPath like "http://www.google.com/". It should be used as href exactly as is.
Don't be afraid
What I mean:
"If the redirect location begins with a "/" character the redirect location will be prefixed with the web applications context path. For example if an application is deployed to the context "mycorp" calling setRedirect("/customer/details.htm") will redirect the request to: "/mycorp/customer/details.htm".
Same can apply to ExternalLink.
If target path == http://www.google.com/ or www.google.com/ or foobar then it will be used as is - without modifications.
But if target path starts with / then - it is of course on your server,
but usually wrong: http://myserver/target_path
instead of (right): http://myserver/servletcontextpath/target_path
You don't know usually servletcontextpath in your webApp (you should call getContextPath()) and i think you rarely need something in others webapps.