I'm using Cayenne with Tapestry (3&4) with pretty good success.  The
Tapestry learning curve is pretty steep (and harder if you expect it
to be a WebObjects clone, which it isn't), but I think it is quite a
bit better than Struts.  In your HTML template, you can have things
like:

<input type="checkbox" jwcid="@Checkbox" value="ognl:isEarlyFundingEligible"/>

Tapestry will automatically call getIsEarlyFundingEligible() in your
Java class on presenting the page, and also automatically call
setIsEarlyFundingEligible(value) when processing the form.  Tapestry
also allows key paths there, something like:
ognl:myCayenneObject.foo.bar.name and it'll call the right get/set for
you and Cayenne can persist it automatically.  My update method, to
process the form submission for an entire table of data values, is:

 public void update()
 {
   getSession().getDataContext().commitChanges();
 }

That is just what you would expect from WebObjects, too.  There are a
lot of similarities between WebObjects and Tapestry/Cayenne, but it
isn't a 100% feature clone, so keep that in mind (Cayenne is closer to
EOF than Tapestry is to WO).

/dev/mrg


On 6/8/06, Arturo Perez <[EMAIL PROTECTED]> wrote:

Actually, it's not Cayenne that makes me miss WebObjects.  I think it's doing a
find job as an EOF-ng.

What's getting me down is all the data translation between the Struts-based
front end (strings?  integers?  what happened to my OBJECTS!?) and the
business logic layer.

Now, I'm updating a Neanderthalish Web application so I don't have the
complete freedom to switch to something else.  Click sounds intriguing.

Any other recommendations for in-house Web application front-end development
that plays nicely with Cayenne?

-arturo

Reply via email to