I don't think this would work, for instance the grid component persists String, Integer and Boolean. Also, if there were 2 trees in the app, they would both need the same persistence
I'd prefer a component parameter. I was assuming this would require invoking tapestry's underlying persistence API's instead of using @Persist.