You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Ivelin Ivanov <iv...@iname.com> on 2002/03/12 15:45:22 UTC

[Request for Feedback] re: HTML Form <-> XML <-> JavaBeans Binding [was: Announcement]

Konstantin,

did you have time to look at the FormBeanBinder code I've submitted?
Does it satisfy the Form symmety requirement you've placed on the list
shortly after the Castor transformer become available?

I got feedback from Sam and Michael that the proposed implementation is not
bad start and is worth extending,
but I need more people from the core team to look at it, before I can
continue with more advanced features.

Thanks,

Ivelin

----- Original Message -----
From: "Ivelin Ivanov" <iv...@iname.com>
To: <co...@xml.apache.org>
Cc: "Dmitri Plotnikov" <dm...@plotnix.com>
Sent: Sunday, March 10, 2002 6:47 AM
Subject: Re: Comitting components


> Folks,
>
> I think we might have made one small step towards HTML Form symmetry in
> Cocoon.
> The approach I have taken after long discussions and even longer hours
> before my monitor is enhancing the Cocoon Action concept so that it is
> coherent with the rest of the framework.
>
> Thanks to the people who built JXPath  and  Castor (and
CastorTransformer),
> I think we now have a way to elegantly map content to business logic.
(HTML
> Forms <-> XML/XPath <-> JavaBeans)
>
> The idea has been in circulation for a long time: unmarshal JavaBeans from
> the buziness layer to XML, so that they can be part of the content model
and
> then use XPath expressions for HTML Form elements so that on POST the same
> JavaBean can be updated and sent back to the business logic.
>
> You can download a scratchpad formatted bundle here:
> http://prdownloads.sourceforge.net/freebuilder/CocoonForm.zip
> I've only used Apache licensed files this time ;)
> The examples are based on the CastorTransformer examples, so they should
be
> easy to comprehend.
>
> The code is very simple. I've tried not to touch more advanced problems
like
> error handling and reporting, unusual custom mapping and multi page
wizards.
> Thought I should first present to the rest of the group a simple prototype
> for feasibility test .
>
>
> Below I will show just a sample XSL file which takes an XML presentation
of
> a JavaBean and renders HTML forms with the appropriate XPath expressions.
It
> will hopefully sharpen your apetite enough to make you look at the code
and
> participate in the
> discussion:
>
>
> ---------------------------
> - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
>   <xsl:output method="html" omit-xml-declaration="yes" />
> - <xsl:template match="/zoo">
> - <html>
> - <body>
>   Please edit and submit:
>   <br />
>   <xsl:apply-templates />
>   </body>
>   </html>
>   </xsl:template>
> - <xsl:template match="animal[1]">
> - <form method="post" action="test">
>   <xsl:variable name="animalName" select="name" />
>   Animal name:
>   <input type="text" name="name" value="{$animalName}" />
>   <br />
>   Kind:
> - <b>
>   <xsl:value-of select="personalInfo/@kind" />
>   </b>
>   <br />
>   <xsl:variable name="animalScope" select="scope" />
>   Animal scope:
>   <input type="text" name="scope" value="{$animalScope}" />
>   <br />
>   <xsl:variable name="preference1" select="preferences[1]" />
>   First Preference:
>   <input type="text" name="preferences[1]" value="{$preference1}" />
>   <br />
>   <xsl:variable name="preference2" select="preferences[2]" />
>   Second Preference:
>   <input type="text" name="preferences[2]" value="{$preference2}" />
>   <br />
>   <input type="submit" />
>   </form>
>   <br />
>   Counter:
>   <xsl:value-of select="@count" />
>   </xsl:template>
>   <xsl:template match="*" />
>   </xsl:stylesheet>
> ----------------------------------
>
>
> Looking forward to comments.
>
> Cheers,
>
> Ivelin
>
>
>
>
>
> ----- Original Message -----
> From: "Ivelin Ivanov" <iv...@iname.com>
> To: "Nicola Ken Barozzi" <ni...@apache.org>;
<co...@xml.apache.org>
> Cc: <"[dplotnik@"@iname.com
> Sent: Thursday, March 07, 2002 3:57 PM
> Subject: Re: Comitting components
>
>
> >
> > Way cool !
> >
> > We've been using castor .93 for quite serious xml traffic between
hundreds
> win c++ clients and a java portal. Great performance.
> >
> > Donating this transformer also saved me some work.
> > As I mentioned before I am workin on a little prototype that'll
hopefully
> introduce some HTML Forms symmetry in cocoon.
> >
> > From an earlier email by Konstantin:
> > >It would be also fine to have an action that >performs the opposite
> > >operation: set properties of JavaBean object(s) with request param
values
> > >using XPath expressions, e.g.:
> > >customer/firstname = Ozzy
> > >customer/lastname = Osbourne
> > >can be converted to XML:
> > ><customer>
> > >    <firstname>Ozzy</firstname>
> > >    <lastname>Osbourne</lastname>
> > ></customer>
> >
> > I am working on this with Dmitri's help using his JXPath lib.
> > http://cvs.apache.org/viewcvs/jakarta-commons/jxpath/
> >
> > It's being used for Jakarta JSTL and Workflow (which says enough for its
> quality).
> >
> > Let me know if someone else is working in this direction so that we
don't
> double the work.
> >
> > Regards,
> >
> > Ivelin
> >
> >
> >
> >
> >
> > -----Original Message-----
> > From: "Nicola Ken Barozzi" <ni...@apache.org>
> > Date: Thu, 7 Mar 2002 18:03:30 +0100
> > To:  <co...@xml.apache.org>
> > Subject: Re: Comitting components
> >
> >
> > > From: "Matthew Langham" <ml...@s-und-n.de>
> > >
> > > > today two new "things" were donated/comitted to the Cocoon
> scratchpad -
> > > the
> > > > Castor Transformer and the POI Serialization code.
> > > >
> > > > It would help people like me (who do not read all the messages or
much
> > > worse
> > > > remember them all) if comitters could add a couple of lines or
> paragraphs
> > > as
> > > > to what can be done with the new components when sending off the
> > > > announcements.
> > >
> > > You are right. Thank you for the pointer.
> > > Here is a brief explanation.
> > >
> > > ----------------------
> > >  POI Serializer
> > > ----------------------
> > >
> > > The POI project, now hosted on http://jakarta.apache.org/poi/ , is a
> project
> > > that consists of APIs for manipulating various file formats based upon
> > > Microsoft's OLE 2 Compound Document format using pure Java. OLE 2
> Compound
> > > Document Format based files include most Microsoft Office files such
as
> XLS
> > > and DOC.
> > >
> > > The HSSFSerializer uses POI's HSSF xls file write API
> > > http://jakarta.apache.org/poi/hssf/index.html , and is now in Cocoon
> proper
> > > (not scratchpad).
> > >
> > > It makes it possible to output xml following the schema of gnumeric to
> an
> > > xls file.
> > > Examples are present in the "extra" section, under "legacy file
> formats".
> > >
> > > To install the Cocoon war easily, do:
> > >
> > > build.(sh|bat) clean
> > > build.(sh|bat) installwar
> > >
> > > ----------------------------
> > >  Castor Transformer (in scratchpad)
> > > ----------------------------
> > >
> > > Marshals a object from the the sitemap, request, session or Servlet
> Context
> > > into a series of SAX events, and can seek for the java bean
> automaticaly.
> > > TheCastortransformer can be configured with a default mapping. This
> mapping
> > > is used as long as no other mappings are specified.
> > >
> > >   <map:transformer name="CastorTransformer"
> > >
> src="org.apache.cocoontransformation.CastorTransformer">
> > >     <mapping>castor/xmapping.xml</mapping>
> > >   </map:transformer>
> > >
> > > A sample for the use:
> > >    <root xmlns:castor="http://castor.exolab.org/cocoontransfomer">
> > >       <castor:InsertBean source="session" key="invoice"/>
> > >       <castor:InsertBean source="sitemap" key="product"
> > >                mapping="castor/specicalmapping.xml"/>
> > >    </root>
> > >
> > > The CastorTransfomer support only one Element castor:InsertBean.
> > > This element is replaced with the marshalled object.
> > >
> > > Other information can be found in the scratchpad sample sub-sitemap
> under
> > > docs.
> > >
> > > To install the Cocoon war with scratchpad stuff easily, do:
> > >
> > > build.(sh|bat) clean
> > > build.(sh|bat) installscratchpadwar
> > >
> > > The demo is under http://server:port/cocoon/samples/castor/
> > >
> > > --
> > > Nicola Ken Barozzi                   nicolaken@apache.org
> > >             - verba volant, scripta manent -
> > >    (discussions get forgotten, just code remains)
> > > ---------------------------------------------------------------------
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> > > For additional commands, email: cocoon-dev-help@xml.apache.org
> > >
> > >
> >
> > --
> >
> > _______________________________________________
> > Sign-up for your own FREE Personalized E-mail at Mail.com
> > http://www.mail.com/?sr=signup
> >
> > Travelocity.com is giving away two million travel miles.
> >
>
http://ad.doubleclick.net/clk;3969773;6991039;g?http://svc.travelocity.com/p
> romos/millionmiles_main/0,,TRAVELOCITY,00.html
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> > For additional commands, email: cocoon-dev-help@xml.apache.org
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org