You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship" <hl...@comcast.net> on 2003/08/05 22:47:44 UTC

Server-Side Article on Maverick

Is Howard Lewis Ship the only person in the world (besides Christian Sell) who can write about
Tapestry?

I hope not ... because I'm just about written-out.  The final bits of the book are just about done
and I'm sick of writing.

I was reading TheServerSide article on Maverick thinking ... a nice Tapestry article along these
lines would be nice.

If I get a chance, I'll bring the equivalent Tapestry application at Wafer up-to date with 3.0.  But
I'd love to see someone else write up Tapestry for a change.

Any takers?  I'll buy ya a beer!

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry



RE: Server-Side Article on Maverick

Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
I looked at this yesterday.  Some idiot checked in stuff for a Struts version, didn't use classpath
variables but instead referenced hard-coded paths, didn't check the necessary libraries into CVS.  I
just removed those portions from .classpath before giving up (because someone volunteered!).

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry



> -----Original Message-----
> From: Luis Neves [mailto:lneves@netcabo.pt] 
> Sent: Wednesday, August 06, 2003 1:02 PM
> To: Tapestry development
> Subject: Re: Server-Side Article on Maverick
> 
> 
> 
> Hi,
> 
> On Wednesday 06 August 2003 13:50, Howard M. Lewis Ship wrote:
> > I am fully willing to delegate!
> 
> SourceForge is conspiring against us!!!
> I  took me three hours to checkout the wafer tapestry example 
> just to realize 
> that there are some missing bits of the application that are 
> not present in 
> the tapestry directory.
> I give up (at least for today) on trying to checkout those 
> bits, SourceForge 
> CVS keeps barfing, even CVSWeb is timing out.
> Nevertheless I made some changes to the code (these changes 
> were done in the 
> dark, I don't have the necessary files to make sure that the 
> application is 
> working).
> A summary of the changes:
> -Updated the libraries to those from the 3.0Beta2 release and 
> changed the 
> build.xml file accordingly.
> -Changed the references of net.tapestry to 
> org.apache.tapestry. -Deleted the "throws 
> RequestCycleException" clause. -Replaced the 
> RequestCycleException for ApplicationRuntimeException (not sure 
> about this one).
> -Replaced cycle.setPage() for cycle.activate().
> -Made use of property-specification element where 
> appropriate. -Updated the use of IValidationDelegate.record() 
> to conform with 3.0Beta2 
> syntax.
> -Replace the DTD  id.
> -Replaced the notation foo="[[ bar ]]" for foo="ognl:bar" in 
> the templates.
> 
> The code is available at: 
> http://pwp.netcabo.pt/lneves/tapestryapps/file> s/wafer.tar.gz
> 
> 
> 
> I don't have more time to dedicate to this 
> today ... it can take up to 2 weeks 
> until I have another break to play with the code again... 
> stupid sourceforge 
> :-(
> 
> Regards,
> Luis Neves
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
> 


Re: Server-Side Article on Maverick

Posted by Luis Neves <ln...@netcabo.pt>.
Hi,

On Wednesday 06 August 2003 13:50, Howard M. Lewis Ship wrote:
> I am fully willing to delegate!

SourceForge is conspiring against us!!!
I  took me three hours to checkout the wafer tapestry example just to realize 
that there are some missing bits of the application that are not present in 
the tapestry directory.
I give up (at least for today) on trying to checkout those bits, SourceForge 
CVS keeps barfing, even CVSWeb is timing out.
Nevertheless I made some changes to the code (these changes were done in the 
dark, I don't have the necessary files to make sure that the application is 
working).
A summary of the changes:
-Updated the libraries to those from the 3.0Beta2 release and changed the 
build.xml file accordingly.
-Changed the references of net.tapestry to org.apache.tapestry.
-Deleted the "throws RequestCycleException" clause.
-Replaced the RequestCycleException for ApplicationRuntimeException (not sure 
about this one).
-Replaced cycle.setPage() for cycle.activate().
-Made use of property-specification element where appropriate.
-Updated the use of IValidationDelegate.record() to conform with 3.0Beta2 
syntax.
-Replace the DTD  id.
-Replaced the notation foo="[[ bar ]]" for foo="ognl:bar" in the templates.

The code is available at:
http://pwp.netcabo.pt/lneves/tapestryapps/files/wafer.tar.gz


I don't have more time to dedicate to this today ... it can take up to 2 weeks 
until I have another break to play with the code again... stupid sourceforge 
:-(

Regards,
Luis Neves


RE: Server-Side Article on Maverick

Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
I am fully willing to delegate!

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry



> -----Original Message-----
> From: Luis Neves [mailto:lneves@netcabo.pt] 
> Sent: Wednesday, August 06, 2003 7:27 AM
> To: Tapestry development; Howard M. Lewis Ship
> Subject: Re: Server-Side Article on Maverick
> 
> 
> On Tuesday 05 August 2003 21:47, Howard M. Lewis Ship wrote:
> 
> > If I get a chance, I'll bring the equivalent Tapestry 
> application at 
> > Wafer up-to date with 3.0.
> 
> Don't bother. I will take care of that.
> 
> Regards,
> Luis Neves
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
> 


Re: Server-Side Article on Maverick

Posted by Luis Neves <ln...@netcabo.pt>.
On Tuesday 05 August 2003 21:47, Howard M. Lewis Ship wrote:

> If I get a chance, I'll bring the equivalent Tapestry application at Wafer
> up-to date with 3.0.

Don't bother. I will take care of that.

Regards,
Luis Neves


Re: Server-Side Article on Maverick

Posted by Harish Krishnaswamy <hk...@comcast.net>.
Howard,

I had started on an article a little while back and hadn't had the the 
time to finish it up. I will be glad to take it up and finish it if you 
or anyone else someone can eye-ball it for errors. You may find the 
article at http://mywpages.comcast.net/hkrishnaswamy/. Let me know.

-Harish

Howard M. Lewis Ship wrote:

>Is Howard Lewis Ship the only person in the world (besides Christian Sell) who can write about
>Tapestry?
>
>I hope not ... because I'm just about written-out.  The final bits of the book are just about done
>and I'm sick of writing.
>
>I was reading TheServerSide article on Maverick thinking ... a nice Tapestry article along these
>lines would be nice.
>
>If I get a chance, I'll bring the equivalent Tapestry application at Wafer up-to date with 3.0.  But
>I'd love to see someone else write up Tapestry for a change.
>
>Any takers?  I'll buy ya a beer!
>
>--
>Howard M. Lewis Ship
>Creator, Tapestry: Java Web Components
>http://jakarta.apache.org/tapestry
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>
>
>  
>


Re: OGNL

Posted by Vince Marco <vm...@mac.com>.
>You could create an application extension:
>  
>
Ok.  Now this looks entirely appropriate and simple.

>You can specify the Global type as a property in the .application file too..
>
><property name="org.apache.tapestry.global-class" value="your class"/>
>
>  
>
Got it, thanks.  I was under the impression that the Global object 
provided access to ServletContext parameters via the default HashMap, 
but I see that it is just STORED in the ServletContext as a parameter.

This ends up being very simple as well.




Re: OGNL

Posted by Geoff Longman <gl...@intelligentworks.com>.
You could create an application extension:

Make a bean that does the required init in its constructor.

add an extension element to the .application file and mark it as immediate
which means "load on startup".

http://jakarta.apache.org/tapestry/doc/DevelopersGuide/spec.extension.html

Or  do as you suggest below...

> Here's a question.  If I use a custom Global-class in the
> web.application, do I need to override BaseEngine in order to create
> it?  Seems pretty redundant to have to do both things.  Why not have an
> IGlobal interface that handles the ServletContext parameters, so that
> BaseEngine can create my own Global class.  Then I just have to specify
> my custom class in the web.application, and presto (like the Visit).

You can specify the Global type as a property in the .application file too..

<property name="org.apache.tapestry.global-class" value="your class"/>


Geoff


Re: OGNL

Posted by Vince Marco <vm...@mac.com>.
Ok, then help me out here.  I haven't read or seen any extending of the 
servlet, and I'd prefer not to have to bring in yet another extension to 
learn.

All I am asking for is an existing initialization hook that always gets 
called when an app is deployed.  I chose the engine because I am 
guessing that IEngine.createGlobal() gets called on deployment to load 
the ServletContext into the Global object.

This seems like it could be an effective place to do this, given that I 
didn't find a more suitable method (such as initialize()) that I could 
tie into in the IEngine.  This doesn't cause any state in the IEngine 
and it doesn't care that the engine is session bound or if the app is 
stateful.

The only reason that I would share your assessment is if the 
IEngine.createGlobal() isn't specifically called to create the Global at 
app deployment.

Here's a question.  If I use a custom Global-class in the 
web.application, do I need to override BaseEngine in order to create 
it?  Seems pretty redundant to have to do both things.  Why not have an 
IGlobal interface that handles the ServletContext parameters, so that 
BaseEngine can create my own Global class.  Then I just have to specify 
my custom class in the web.application, and presto (like the Visit).

Then I could put the OGNL hook in my custom Global constructor, with no 
fuss or muss with overriding the Engine.  It is, effectively global app 
behavior by the way.

Any thoughts or comments?

Vince

>i'd expect the servlet to be a better place to initialise this than the
>engine.  engines are session bound afterall (for statelful apps anyway)...
>
>  
>
>>Very cool, and easy to boot!!
>>
>>So, now where is the best place to install this handler in Tapesry?  Is
>>there an initialize method off the engine?
>>
>>    
>>



Re: OGNL

Posted by Richard Lewis-Shell <rl...@mac.com>.
i'd expect the servlet to be a better place to initialise this than the
engine.  engines are session bound afterall (for statelful apps anyway)...

R

----- Original Message -----
From: "Vince Marco" <vm...@mac.com>
To: "Tapestry development" <ta...@jakarta.apache.org>
Sent: Thursday, August 07, 2003 2:57 PM
Subject: Re: OGNL


> Very cool, and easy to boot!!
>
> So, now where is the best place to install this handler in Tapesry?  Is
> there an initialize method off the engine?
>
> Vince
>
> > You could set the NullHandler for Object.class and that would get
> > called when any object has a null evaluation:
> >
> >        OgnlRuntime.setNullHandler( Object.class,  new
> > MyObjectNullHandler());
> >
> > The default NullHander (ObjectNullHandler) gets installed this way and
> > simply allows null to filter through and cause NullPointerExceptions.
> > You could install one that interrogates the target object  for its
> > class and proceeds from there.
> >
> > - Drew
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>



Re: OGNL

Posted by Vince Marco <vm...@mac.com>.
Very cool, and easy to boot!!

So, now where is the best place to install this handler in Tapesry?  Is 
there an initialize method off the engine?

Vince

> You could set the NullHandler for Object.class and that would get 
> called when any object has a null evaluation:
>
>        OgnlRuntime.setNullHandler( Object.class,  new 
> MyObjectNullHandler());
>
> The default NullHander (ObjectNullHandler) gets installed this way and 
> simply allows null to filter through and cause NullPointerExceptions.  
> You could install one that interrogates the target object  for its 
> class and proceeds from there.
>
> - Drew
>



Re: OGNL

Posted by Richard Lewis-Shell <rl...@mac.com>.
> You could set the NullHandler for Object.class and that would get called 
> when any object has a null evaluation:
> 
>         OgnlRuntime.setNullHandler( Object.class,  new 
> MyObjectNullHandler());
> 
> The default NullHander (ObjectNullHandler) gets installed this way and 
> simply allows null to filter through and cause NullPointerExceptions.  
> You could install one that interrogates the target object  for its class 
> and proceeds from there.

perfect!

R


Re: OGNL

Posted by Drew Davidson <dr...@ognl.org>.
Richard Lewis-Shell wrote:

>>Say, one aspect of Struts I find very annoying is that when I'm using
>>their expressions to access JBs and a null is down the line (ie.
>>"office.city.address.line1" and address is null).  I want to handle
>>this as elegantly as possible in Tapestry without adding a null handler
>>to every JB class.  Can I add the null handler to an abstract class and
>>have it effect instances of inherited classes?  This seems to be an
>>OGNL question.
>>    
>>
>
>i'd love to be able to do this across inheritance hierarchies too. i.e. a
>default null handler that would apply if no other handler were specified
>would be excellent.  effectively just wanting a way to have OGNL evaluate an
>expression "a.b.c.d" as null if _any_ of "a", "a.b", "a.b.c", or "a.b.c.d"
>evaluate to null.
>  
>
You could set the NullHandler for Object.class and that would get called 
when any object has a null evaluation:

        OgnlRuntime.setNullHandler( Object.class,  new 
MyObjectNullHandler());

The default NullHander (ObjectNullHandler) gets installed this way and 
simply allows null to filter through and cause NullPointerExceptions.  
You could install one that interrogates the target object  for its class 
and proceeds from there.

- Drew

-- 
+---------------------------------+
< Drew Davidson | OGNL Technology >
<     Professional Open Source    >
+---------------------------------+
|  Email: drew@ognl.org          /
|    Web: http://www.ognl.org   /
|    Vox: (520) 531-1966       <
|    Fax: (520) 531-1965        \
| Mobile: (520) 405-2967         \
+---------------------------------+



Re: Re:OGNL

Posted by Richard Lewis-Shell <rl...@mac.com>.
> Say, one aspect of Struts I find very annoying is that when I'm using
> their expressions to access JBs and a null is down the line (ie.
> "office.city.address.line1" and address is null).  I want to handle
> this as elegantly as possible in Tapestry without adding a null handler
> to every JB class.  Can I add the null handler to an abstract class and
> have it effect instances of inherited classes?  This seems to be an
> OGNL question.

i'd love to be able to do this across inheritance hierarchies too. i.e. a
default null handler that would apply if no other handler were specified
would be excellent.  effectively just wanting a way to have OGNL evaluate an
expression "a.b.c.d" as null if _any_ of "a", "a.b", "a.b.c", or "a.b.c.d"
evaluate to null.

R



Re: Re:OGNL

Posted by Richard Lewis-Shell <rl...@mac.com>.
Oh, now that would rock!  I can see it now - right-click on a Tapestry tag
in a template, and select "Don't be so lazy..." from the menu ;-)

R

----- Original Message -----
From: "Geoff Longman" <gl...@intelligentworks.com>
To: "Tapestry development" <ta...@jakarta.apache.org>
Sent: Wednesday, August 06, 2003 2:21 PM
Subject: Re: Re:OGNL


> One of the goals of the new Spindle... I duck now to avoid the
> inevitable "where is it!?!" responses ... is to have a faclility to
> migrate template style component declartions to traditional specification
> based declarations.
>
> ie. MyPage.html...
>
> <span
>     jwcid="someId@PropertySelection"
>
>
model="ognl:@telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectio
> nModel"
>     value="ognl:teacherType"
>     submitOnChange="ognl:true">
> ...
>
> into
>
> < span jwcid="someId">
> ...
>
> with the tapestry stuff moved automagically into MyPage.page
>
> <component id="someId"  type="PropertySelection">
>     <binding name="model">
>
> telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectionModel
>     </binding>
>     <binding name="value">
>         teacherType
>     </binding>
>     <binding name="submitOnChange">
>         true
>     </binding>
> </component>
>
> I want this feature real bad 'cuz is using the template decls rocks for
> prototyping
> but it sucks when one has to migrate them by hand.
>
> Geoff
>
> ----- Original Message -----
> From: "Vince Marco" <vm...@mac.com>
> To: "Tapestry development" <ta...@jakarta.apache.org>
> Sent: Tuesday, August 05, 2003 9:45 PM
> Subject: Re:OGNL
>
>
> > > I've tried to get people interested in OGNL, but it seems that it is a
> > > "stealth" project.  People use it within their frameworks and
> > > projects, but it doesn't get any press or recognition :-(
> >
> > Well, so far my experience with OGNL is that it is a real time (and
> > code) saver in the specification files.  It helps me avoid classes
> > where I really shouldn't need one.  Great for bindings.
> >
> > But I do like to limit (if not eliminate) all OGNL expressions from my
> > templates.  My whole excitement about Tapestry is to avoid the same
> > problem I end up with using JSPs and Struts...which is that I end up
> > mixing logic into my HTML.
> >
> > But there are times when expediency wins out, at least in the near term
> > and I use an occasional OGNL expression in the HTML template.
> >
> > I need to get more into OGNL, as I'm sure it can do much more for me.
> >
> > Say, one aspect of Struts I find very annoying is that when I'm using
> > their expressions to access JBs and a null is down the line (ie.
> > "office.city.address.line1" and address is null).  I want to handle
> > this as elegantly as possible in Tapestry without adding a null handler
> > to every JB class.  Can I add the null handler to an abstract class and
> > have it effect instances of inherited classes?  This seems to be an
> > OGNL question.
> >
> > Thanks,
> >
> > Vince
> >
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> > Vince Marco
> > Enterprise Frameworks, Inc.
> > vmarco@mac.com
> >
>
>
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> >
> >
> >
>
>
>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>



Re: OGNL

Posted by Harish Krishnaswamy <hk...@comcast.net>.
That would be an awesome feature. I was thinking the other day that the 
only thing that is hard to do with Tapestry is refactoring with all the 
html and xml stuff. May be this feature can be extended later to allow 
refactoring. Cool, exciting.

-Harish

Geoff Longman wrote:

>One of the goals of the new Spindle... I duck now to avoid the
>inevitable "where is it!?!" responses ... is to have a faclility to
>migrate template style component declartions to traditional specification
>based declarations.
>
>ie. MyPage.html...
>
><span
>    jwcid="someId@PropertySelection"
>
>model="ognl:@telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectio
>nModel"
>    value="ognl:teacherType"
>    submitOnChange="ognl:true">
>...
>
>into
>
>< span jwcid="someId">
>...
>
>with the tapestry stuff moved automagically into MyPage.page
>
><component id="someId"  type="PropertySelection">
>    <binding name="model">
>
>telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectionModel
>    </binding>
>    <binding name="value">
>        teacherType
>    </binding>
>    <binding name="submitOnChange">
>        true
>    </binding>
></component>
>
>I want this feature real bad 'cuz is using the template decls rocks for
>prototyping
>but it sucks when one has to migrate them by hand.
>
>Geoff
>
>----- Original Message -----
>From: "Vince Marco" <vm...@mac.com>
>To: "Tapestry development" <ta...@jakarta.apache.org>
>Sent: Tuesday, August 05, 2003 9:45 PM
>Subject: Re:OGNL
>
>
>  
>
>>>I've tried to get people interested in OGNL, but it seems that it is a
>>>"stealth" project.  People use it within their frameworks and
>>>projects, but it doesn't get any press or recognition :-(
>>>      
>>>
>>Well, so far my experience with OGNL is that it is a real time (and
>>code) saver in the specification files.  It helps me avoid classes
>>where I really shouldn't need one.  Great for bindings.
>>
>>But I do like to limit (if not eliminate) all OGNL expressions from my
>>templates.  My whole excitement about Tapestry is to avoid the same
>>problem I end up with using JSPs and Struts...which is that I end up
>>mixing logic into my HTML.
>>
>>But there are times when expediency wins out, at least in the near term
>>and I use an occasional OGNL expression in the HTML template.
>>
>>I need to get more into OGNL, as I'm sure it can do much more for me.
>>
>>Say, one aspect of Struts I find very annoying is that when I'm using
>>their expressions to access JBs and a null is down the line (ie.
>>"office.city.address.line1" and address is null).  I want to handle
>>this as elegantly as possible in Tapestry without adding a null handler
>>to every JB class.  Can I add the null handler to an abstract class and
>>have it effect instances of inherited classes?  This seems to be an
>>OGNL question.
>>
>>Thanks,
>>
>>Vince
>>
>>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>>Vince Marco
>>Enterprise Frameworks, Inc.
>>vmarco@mac.com
>>
>>    
>>
>
>
>
>  
>
>>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>>
>>
>>
>>    
>>
>
>
>
>  
>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
>
>
>  
>

Re: Re:OGNL

Posted by Geoff Longman <gl...@intelligentworks.com>.
One of the goals of the new Spindle... I duck now to avoid the
inevitable "where is it!?!" responses ... is to have a faclility to
migrate template style component declartions to traditional specification
based declarations.

ie. MyPage.html...

<span
    jwcid="someId@PropertySelection"

model="ognl:@telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectio
nModel"
    value="ognl:teacherType"
    submitOnChange="ognl:true">
...

into

< span jwcid="someId">
...

with the tapestry stuff moved automagically into MyPage.page

<component id="someId"  type="PropertySelection">
    <binding name="model">

telepathy.cust_operator.CustOperatorSummary@TeacherTypeSelectionModel
    </binding>
    <binding name="value">
        teacherType
    </binding>
    <binding name="submitOnChange">
        true
    </binding>
</component>

I want this feature real bad 'cuz is using the template decls rocks for
prototyping
but it sucks when one has to migrate them by hand.

Geoff

----- Original Message -----
From: "Vince Marco" <vm...@mac.com>
To: "Tapestry development" <ta...@jakarta.apache.org>
Sent: Tuesday, August 05, 2003 9:45 PM
Subject: Re:OGNL


> > I've tried to get people interested in OGNL, but it seems that it is a
> > "stealth" project.  People use it within their frameworks and
> > projects, but it doesn't get any press or recognition :-(
>
> Well, so far my experience with OGNL is that it is a real time (and
> code) saver in the specification files.  It helps me avoid classes
> where I really shouldn't need one.  Great for bindings.
>
> But I do like to limit (if not eliminate) all OGNL expressions from my
> templates.  My whole excitement about Tapestry is to avoid the same
> problem I end up with using JSPs and Struts...which is that I end up
> mixing logic into my HTML.
>
> But there are times when expediency wins out, at least in the near term
> and I use an occasional OGNL expression in the HTML template.
>
> I need to get more into OGNL, as I'm sure it can do much more for me.
>
> Say, one aspect of Struts I find very annoying is that when I'm using
> their expressions to access JBs and a null is down the line (ie.
> "office.city.address.line1" and address is null).  I want to handle
> this as elegantly as possible in Tapestry without adding a null handler
> to every JB class.  Can I add the null handler to an abstract class and
> have it effect instances of inherited classes?  This seems to be an
> OGNL question.
>
> Thanks,
>
> Vince
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> Vince Marco
> Enterprise Frameworks, Inc.
> vmarco@mac.com
>



>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
>
>



> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org


Re:OGNL

Posted by Vince Marco <vm...@mac.com>.
> I've tried to get people interested in OGNL, but it seems that it is a 
> "stealth" project.  People use it within their frameworks and 
> projects, but it doesn't get any press or recognition :-(

Well, so far my experience with OGNL is that it is a real time (and 
code) saver in the specification files.  It helps me avoid classes 
where I really shouldn't need one.  Great for bindings.

But I do like to limit (if not eliminate) all OGNL expressions from my 
templates.  My whole excitement about Tapestry is to avoid the same 
problem I end up with using JSPs and Struts...which is that I end up 
mixing logic into my HTML.

But there are times when expediency wins out, at least in the near term 
and I use an occasional OGNL expression in the HTML template.

I need to get more into OGNL, as I'm sure it can do much more for me.

Say, one aspect of Struts I find very annoying is that when I'm using 
their expressions to access JBs and a null is down the line (ie. 
"office.city.address.line1" and address is null).  I want to handle 
this as elegantly as possible in Tapestry without adding a null handler 
to every JB class.  Can I add the null handler to an abstract class and 
have it effect instances of inherited classes?  This seems to be an 
OGNL question.

Thanks,

Vince

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Vince Marco
Enterprise Frameworks, Inc.
vmarco@mac.com

Re: Server-Side Article on Maverick

Posted by Drew Davidson <dr...@ognl.org>.
Vince Marco wrote:

>
>> Is Howard Lewis Ship the only person in the world (besides Christian 
>> Sell) who can write about
>> Tapestry?
>>
>
> I could also see an article focusing on OGNL usage within Tapestry as 
> being extremely worthwhile.  We're starting to collect quite a few 
> patterns and anti-patterns of OGNL usage through our efforts.

I've tried to get people interested in OGNL, but it seems that it is a 
"stealth" project.  People use it within their frameworks and projects, 
but it doesn't get any press or recognition :-(

The Sun people with whom I've talked have given it an icy reception.  
Perhaps the competition with their EL makes it not very "positionable" 
within their product vision.

- Drew

-- 
+---------------------------------+
< Drew Davidson | OGNL Technology >
<     Professional Open Source    >
+---------------------------------+
|  Email: drew@ognl.org          /
|    Web: http://www.ognl.org   /
|    Vox: (520) 531-1966       <
|    Fax: (520) 531-1965        \
| Mobile: (520) 405-2967         \
+---------------------------------+



Re: Server-Side Article on Maverick

Posted by Drew Davidson <dr...@ognl.org>.
Vince Marco wrote:

>
>> Is Howard Lewis Ship the only person in the world (besides Christian 
>> Sell) who can write about
>> Tapestry?
>>
>
> I could also see an article focusing on OGNL usage within Tapestry as 
> being extremely worthwhile.  We're starting to collect quite a few 
> patterns and anti-patterns of OGNL usage through our efforts.

I'd be very interested in seeing this.

- Drew

-- 
+---------------------------------+
< Drew Davidson | OGNL Technology >
<     Professional Open Source    >
+---------------------------------+
|  Email: drew@ognl.org          /
|    Web: http://www.ognl.org   /
|    Vox: (520) 531-1966       <
|    Fax: (520) 531-1965        \
| Mobile: (520) 405-2967         \
+---------------------------------+



Re: Server-Side Article on Maverick

Posted by Vince Marco <vm...@mac.com>.
> Is Howard Lewis Ship the only person in the world (besides Christian 
> Sell) who can write about
> Tapestry?
>

I could also see an article focusing on OGNL usage within Tapestry as 
being extremely worthwhile.  We're starting to collect quite a few 
patterns and anti-patterns of OGNL usage through our efforts.


Re: Server-Side Article on Maverick

Posted by Vince Marco <vm...@mac.com>.
> Is Howard Lewis Ship the only person in the world (besides Christian 
> Sell) who can write about
> Tapestry?

I'm interested in writing on Tapestry.  I've co-authored J2EE 1.3 
Complete and ghost-authored several articles for the JDJ, 
Developer.com, and Java Boutique.

James Hays and myself are undertaking some migration from Struts to 
Tapestry.  We have been planning on putting together an article 
covering an Intro to Tapestry, specifically from the perspective of 
carving a productive path through common web development tasks, rather 
than a comprehensive view of Tapestry.

First draft should be a week or 2 out.

Vince

PS - I know how you feel.  After the book effort I was completely 
drained.