On Mon, Dec 29, 2008 at 8:27 PM, Erik Hatcher
<[email protected]> wrote:
> Thanks, good pointers! IncludeNotFound looks like it'd do the trick, but
> for every #parse, not just the one I want to make conditional.
Yeah, a tool approach would probably better fit your use case. It
could be pretty simple:
public class IncludeTool {
private VelocityEngine engine;
public void setVelocityEngine(VelocityEngine engine) {
this.engine = engine;
}
public Boolean exists(String name) {
if (engine == null) {
return null;
}
try {
return engine.resourceExists(name);
} catch (ResourceNotFoundException rnfe) {
return false;
}
}
}
Of course, if you're using VelocityTools, you could even have this
automatically configured and available in all your templates (for
Tools 1.x it'd take a little refactoring).
> Why is it that $engine.resourceExists($template) throws an exception rather
> than returning false?
I'm not really sure. That suprises me and seems wrong. If you would
open a JIRA issue for it, i'd try to look into it this week.
> Erik
>
>
>
> On Dec 29, 2008, at 3:22 PM, Nathan Bubna wrote:
>
>> There's no canonical way of doing this within a template yet, but
>> there is the IncludeEventHandler which was added in Velocity 1.5.
>> There is even an IncludeNotFound implementation provided. You may be
>> able to set up a simpler, exception free solution using those.
>> Alternately, you could pretty easily create a VelocityTool that did
>> this.
>>
>> On Mon, Dec 29, 2008 at 4:10 AM, Erik Hatcher
>> <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> I'd like to have some construct like this in a template:
>>>
>>> #if(templateExists($template))
>>> #parse($template)
>>> #end
>>>
>>> Is there a canonical/approved way of doing this? I've put the
>>> VelocityEngine into the context and tried:
>>>
>>> #if($engine.resourceExists($template))
>>> ...
>>> #end
>>>
>>> But that still throws an exception when $template does not exist. I want
>>> to
>>> avoid the exception and simply skip #parse'ing if a template does not
>>> exist
>>>
>>> Thanks,
>>> Erik
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]