----- Original Message -----
From: "Simon Kitching" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Tuesday, July 29, 2008 12:07 PM
Subject: Re: Embedding custom metadata in a jsp page; access generated Class
via reflection?
Mikolaj Rydzewski schrieb:
> Simon Kitching wrote:
>> Or perhaps someone can suggest an alternate approach to embedding
>> metadata that can be accessed before the page renders?
Please provide as with more details, at this point your requirement
is a little bit strange. Have you considered using filters?
>
Ok, here are some more details.
I'm working on the myfaces orchestra flow project (for JavaServer Faces,
aka JSF). It allows one JSF page to "call" another JSF page like a
subroutine, passing parameters and allows the called page(s) to simply
"return" to the page that called them, passing back results. This makes
navigation between pages easier, makes the data passing explicit, and
avoids any potential variablename "collisions" by setting up a completely
clean scope for the called page to run in, with only the passed variables
visible.
When a "call" to a page is done, the page from which the call is made must
declare metadata about what the parameters to be passed are, and what
logical "service" the called page provides. The called page also needs to
declare what input parameters it expects, and what logical service it
provides. Think of this like a Java method "prototype" (which is also
metadata, and can be queried via java reflection).
The code where this metadata is needed is in a JSF ViewHandler, which is
indirectly called from the JSF FacesServlet class, after the user has
submitted a form. The metadata is used for sanity-checking of the call and
setting up of the passed parameters (rearrangement of variables in the
http session scope etc). Then a forward to the "called" page is done.
As described in the original email, this is currently done by looking for
a ".xml" file sitting beside each .jsp. It works ok, and for any JSF view
mechanism (jsp, facelets, clay, etc). But some people might find embedding
the information in the actual page to be nicer to work with. Doing this
with Facelets isn't too hard, but embedding the necessary info into a jsp
page is straining my jsp knowledge considerably :-)
However I think the issue is a generic one, not anything specific to this
particular case: I want to add "metadata" to a jsp page, just like java
annotations provide static metadata about a class without needing to
create an instance and execute it. I would think that being able to
"annotate" a jsp would be useful for many purposes.
Regards,
Simon
Ok... you on a mission ;)
Some guesses 4 u...
What about something like...
The JSP is well formed XML so
<!-- This is Simons meta data">
<MyBean="org.wada.wada">
<var="Title"/>
<var="Date"/>
<var="Date"/>
<varArray="TableOfTels"/>
</MyBean>
-->
<html>
Yada Yada
Its in a comment so its not compiled... you parse the comment then stick
your stuff thru your XML digester factory...
A bean pops out... your servlet populates it and forwards it....
Idea... normal JSP mechanics ignore your meta data...
You take that idea a little further and make a tag
<Simons:IgnoreThisTag>
The stuff
Now the tag engine makes the bean and puts it in the pages session
Request...
The calling program just has to get the bean from the session.... introspect
and populate
You put an event handler in the bean and you on your way to building your
own Netbeans VWP system.... (swing for the web)
... probably a good place to steal from ;)
I dont use JSF... but I get the feeling that if you did dig around in VWP
you'd probably find the tags that do it...
ie Tag libs are meta data (I think)... it gets compiled... it makes beans...
then its Java again... I think ;)
I think the whole reason for XHTML and all the rest is so HTML pages can
hold meta data... in theory your external XML should drop in... but you just
have to make sure the JSP compiler ignores it, or processes it (I think)
Anyway its nice to see people throwing idea's around.... best of luck
---------------------------------------------------------------------------
HARBOR : http://www.kewlstuff.co.za/index.htm
The most powerful application server on earth.
The only real POJO Application Server.
See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
---------------------------------------------------------------------------
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]