You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Robert Lario <la...@Inherit.com> on 2004/01/01 23:50:11 UTC
[Jelly] Process Templates with taglib and Beans
I am trying to process a template that accesses a bean. I have set name
using context.setVariable("name","robert"); If I leave in ${c1.lastName}
in the template I get a class def found error. If I remove the line
${c1.lastName} the template processes as expected. What am I missing?
Is there any good documentation on how to define taglibs?
Any help would be greatly appreciated - I have been stuck on this for
several days.
Thanks
Here is the template :
<?xml version="1.0"?>
<j:jelly xmlns:j="jelly:core" xmlns:define="jelly:define"
xmlns:my="myDummyTagLib">
<define:taglib uri="myDummyTagLib">
<define:bean name="customer"
className="com.diem.templates.Customer">
<define:attribute name="lastName" required="true"/>
</define:bean>
</define:taglib>
<my:customer var="c1" lastName="smith"/>
<!--
the following line ${c1.lastName} is what causes the error:
java.lang.NoClassDefFoundError:
org/apache/velocity/util/introspection/Uberspect
if I remove the line then this file is processed as expected. Also
note, to test to see that
the Customer class is accessible, I added an X to then end of
com.diem.templates.Customer in classname of
define:bean above - got an error as expected - thus indicating that
Customer is found
-->
${c1.lastName}
${name}'s Page
${name}'s Homepage
</j:jelly>
Here is the bean :
package com.diem.templates;
public class Customer {
private String lastName;
public Customer() {
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}