Now, now, Peter, you can't quite say that since you met me at the
Struts user group at JavaOne. :)  I've used stxx, an XML
transformation Struts extension, for a production app and have been
pretty happy with it.  Performance is good, as long as one has memory
resources available.  The stylesheets can be cached when compiled, and
using a decorator tool like sitemesh, the pages your XSL generates are
quite small.  The big disadvantage, as I see it, is it requires XSLT
knowledge, which most web developers don't have.  I probably wouldn't
recommend it for apps that don't have their data in XML and don't need
multiple views.

Don


On Tue, 16 Nov 2004 17:59:48 -0000, Pilgrim, Peter
<[EMAIL PROTECTED]> wrote:
> 
> 
> 
> 
> > -----Original Message-----
> > From: Dakota Jack [mailto:[EMAIL PROTECTED]
> > Sent: 16 November 2004 17:46
> > To: Struts Users Mailing List
> > Subject: Re: talking about paradigms
> >
> >
> > Bill,
> >
> > Sounds like you don't need what XSLT provides.  The important thing, I
> > think, is to make sure that the framework leaves that option open for
> > those that want it and does not require that option to those who do
> > not want it.  I am not privy to the details of your application, of
> > course, but adding code to the controller to assist in the
> > presentation seems to me to indicate a serious design flaw.  That
> > simply is not the business of the control layer, if you are using the
> > control layer in an MVC pattern.  Part of your bad experience with
> > XSLT sounds like it is not related to the view issues but to some
> > confusion in the architecture of the application?  Not knowing much
> > about the details, this is probably a harsh assessment, but it is what
> > I would intuitively expect to find.  My head keeps saying "What the
> > heck is the controller doing generating XML?".  The controller should
> > be deciding what to do about user input given whatever strategy the
> > application has adopted.
> >
> > Jack
> >
> >
> > On Tue, 16 Nov 2004 10:55:52 -0500, Bill Siggelkow
> > <[EMAIL PROTECTED]> wrote:
> > > Jack,
> > >
> > > What I found was that alot of Java code to generate XML
> > (using DOM API)
> > > had to be added in the controller layer to facilitate the view; for
> > > example, an odd/even indicator was added just to facilitate
> > striping on
> > > the generated HTML table; to me, this seems downright
> > overkill for some
> > > feature that is purely presentation (granted, the
> > developers could have
> > > avoided this through better use of XSLT).
> > >
> > > Personally, I've never warmed to the idea of using the
> > XML/XSLT approach
> > > when the data is already in the form of a Java object; it just seems
> > > like an extra step that doesn't buy me a whole lot.
> > >
> > > -Bill Siggelkow
> > >
> 
> I have never come across anyone in a face-to-face who uses
> the XML/XSLT approach at least with Struts. I met a straight-up
> Cocoon fantastic a few years ago, but by then he was moving
> away from XSLT to proprietary web application framework on
> some app server.
> 
> This biggest problem of the XML is the transformation phase,
> and it sounds like that the original tabular XML was not
> augmented with attributes to say this is hint "render
> this row in green" and now "render that next row with
> white background". Then an XSLT can be written to easily
> transform things around (or not as the case may be).
> 
> I think XML/XSLT pipeline is useful for static stuff that
> mostly does not change frequently. How did you find the
> XSLT transformation performance on your project?
> Did you cache the XSLT results somewhere?
> 
> 
> 
> > >
> > >
> > > Dakota Jack wrote:
> > > > Yet, Bill, that is not the problem of the XML/XSLT model,
> > is it?  That
> > > > model is really cool in separating the model from the
> > view.  Indeed,
> > > > that model is great at separating the view data from the view
> > > > presentation.  I am not sure what the app you worked on did, but I
> > > > think the idea behind the XML/XSLT model is terrific.
> > Essentially, as
> > > > I undestand it, the XML is sent and is in some "language" that the
> > > > client may or may not understand.  So, the XSLT contains a crash
> > > > course in the language.  That is way cool from my perspective.
> > > >
> > > > Jack
> > > >
> > > > P.S.  I really liked Eddie Bush's Jedi Knight take on development.
> > > > That is quite true in my experience.  Usually these
> > metaphors break
> > > > down pretty fast.  That one held up pretty good.
> > Probably due to the
> > > > master Campbell being behind the mythology of Star Wars.
> > > >
> > > >
> > > > On Mon, 15 Nov 2004 09:43:19 -0500, Bill Siggelkow
> > > > <[EMAIL PROTECTED]> wrote:
> > > >
> > > >>Sorry, I haven't been following this thread, but I tend
> > to agree with
> > > >>you. I worked on an app that used XML/XSLT to achieve
> > "purity" -- and
> > > >>what resulted was a lot of this "view helper" data coded
> > into the "pure"
> > > >>XML document; defeating the premise behind separation of
> > the model and view.
> > > >>
> > > >>-Bill Siggelkow
> > > >>
> > > >>
> > > >>
> > > >>Daniel Perry wrote:
> > > >>
> > > >>>I think the idea that MVC architecture should have a
> > 'dumb view' is totally
> > > >>>wrong.  The view should be as smart as possible.
> > > >>>
> > > >>>MVC should separate the M, V and C.  With a really smart
> > view you dont have
> > > >>>to do any preparation for the view in the controller.
> > If you have a dumb
> > > >>>view then you have to prepare the data in the
> > model/controller so that the
> > > >>>view can cope with it.  Surely this is wrong as you are
> > doing view
> > > >>>processing outside of the view. Personally i think ALL
> > view processing
> > > >>>should be done in the view: the view code (be it jsps,
> > java, xml/xsl, etc)
> > > >>>should take model data, and produce a view of that data
> > - and it should be
> > > >>>flexible.
> > > >>>
> > > >>>The problem with a smarter (or better worded: more
> > capable) view is that
> > > >>>people start doing things in the view which shouldnt be
> > done there, such as
> > > >>>database access.  I dont think this is down to a problem
> > with the view
> > > >>>technology, just a lack of education on the users part.
> > Arguing that the
> > > >>>view should dumbed down to stop this problem arising is
> > like saying that
> > > >>>cars should only be able to do 70mph because that's all
> > they can legally do.
> > > >>>
> > > >>>For example, a poject i am responsible has a lot of code
> > in the model beans
> > > >>>that was put there pre jstl for formatting things like
> > dates, or text.  So
> > > >>>you have getStartDate() which returns a date, and
> > getFormattedStartDate()
> > > >>>which returns a formatted string.  This code should be
> > in the view as it is
> > > >>>purely for view purposes, but i made the decision to
> > bodge it into the model
> > > >>>as it was nicer than using java code in the jsps.  There
> > are various other
> > > >>>methods - such as retrieving chunks of text with \n into
> > <br>, which can now
> > > >>>mostly be handled with jstl.
> > > >>>
> > > >>>Daniel.
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>>-----Original Message-----
> > > >>>>From: Rosenberg, Leon [mailto:[EMAIL PROTECTED]
> > > >>>>Sent: 15 November 2004 13:44
> > > >>>>To: Struts Users Mailing List
> > > >>>>Subject: AW: talking about paradigms
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>>>No, but what about
> > > >>>>>>
> > > >>>>>><c:out value="${library.books[25].page[5].title}" /> ?
> > > >>>>>>(not sure about the syntax).
> > > >>>>>
> > > >>>>>whats the problem?
> > > >>>>>MVC usually allows 'read-only access to model' for the view
> > > >>>>>Also the question is, what you expose to the view.
> > > >>>>>If you are afraid that somebody will misuse the
> > library entries -
> > > >>>>
> > > >>>>don't
> > > >>>>
> > > >>>>
> > > >>>>>expose them.
> > > >>>>>I suppose MVC was the reason for JSP EL not to allow
> > arbitrary method
> > > >>>>>invocations. But I'd love to have such anyway ;)
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>>>...
> > > >>>>>>And what about database access tags?
> > > >>>>>
> > > >>>>>You mean the jstl tags? They are there for quick and dirty.
> > > >>>>>If you don't change anything in the database though,
> > it still okay to
> > > >>>>
> > > >>>>MVC.
> > > >>>>
> > > >>>>
> > > >>>>>If you don't want it, don't expose your database in
> > the first place ;)
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>>>The problem is, that if you give a user the possibility
> > to misuse your
> > > >>>>framework - he will.
> > > >>>>And EL gives jsps more power than a dumb view should
> > have. And if your
> > > >>>>view isn't just layouting out the data, but performing
> > nearly complex
> > > >>>>operations, it's not dumb anymore, and a smart view
> > doesn't fit into the
> > > >>>>MVC.
> > > >>>>
> > > >>>>If the user is allowed to break the paradigm he will.
> > > >>>>If you have an architecture, which is built on a
> > paradigm (and any good
> > > >>>>architecture is) you can't allow the developers to
> > break the paradigm,
> > > >>>>or
> > > >>>>the architecture will stop working one day, without
> > obvious reasons.
> > > >>>>It's probably why there are no pointers in java, even
> > pointers adds cool
> > > >>>>features to the language.
> > > >>>>
> > > >>>>Regards
> > > >>>>Leon
> > > >>>>
> > > >>>>
> 
> ==////==
> 
> --
> Peter Pilgrim
> Operations/IT - Credit Suisse First Boston,
> 10 South Colonnade, London E14 4QJ, United Kingdom
> Tel: +44-(0)207-883-4497
> 
> ==============================================================================
> This message is for the sole use of the intended recipient. If you received
> this message in error please delete it and notify us. If this message was
> misdirected, CSFB does not waive any confidentiality or privilege. CSFB
> retains and monitors electronic communications sent through its network.
> Instructions transmitted over this system are not binding on CSFB until they
> are confirmed by us. Message transmission is not guaranteed to be secure.
> ==============================================================================
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to