Hi Craig,
warning, this is long!
I toyed arround last weekend with the Struts tools, but I'm still
unsatisfied. The basic idea as well as the basic approach is very
cool anyway. I'd like to stay closer to the JSP/Servlet framework as
Webmacro and freemarker, but have a better separation of functionality,
layout and data.
Some points:
* The TextareaTag is broken: Accessing rows and cols attributes, certain
Attributes (like wrapping) of HTML are not available for the struts-tag.
* Generally it looks like many HTML attributes are missing from the taglib.
* Maybe it would be nice to have more control whether the text is editable
or read/only or not even viewed with custom tags. I.E. with your user
registration, I'd like to use the same bean and the same jsp to register
and edit my registration data, but in the latter case I shouldn't be able
to change my unique user id any more AND I DONT WANT TO DO JAVA CODING IN
IN MY JSP :-)
* Having the System text properties in many languages would be nice anyway.
* Isn't there some means to implement an "else" Tag to your if tags (I know
there are intrinsic problems with the Taglib-Syntax). Would be so nice.
Having "if a endif if not a endif" is a source of easy mistakes.
* The locale/message support is very nice, but instead of hanging my
application
with a NullPointerException, I'd like another behaviour if an undefined
text is requested: Write s.th. in the log file, and show the Message id
to the presenting tag/servlet. E.g. if a MessageTag requests
franks.cool.text,
which is missing. Write a warning in a log file and return
de_DE:franks.cool.text
to the application. This behaviour should be (maybe switchable) at low
level
in the application.
* Switching locales seems to be broken. I implemented an Action to set the
session locale to a certain value, but still get german text unless it
is missing and i get the english ones you provided.
* Consider to have some classes (e.g. the Message obtaining/caching) as
singletons in JVM Space instead of Application space. I'd rather like
to have a MessageBundle.getInstance() anywhere in my java, than to access
the objects via requests, session and application objects. Hmm at a second
thought I am not convinced completely if this is a good idea, but its
an idea anyway.
* Consider having a tag for a jsp to check weather it is accessed directly
or
via the controler servlet, forwarding the request to some neutral page in
the
prior case. Even nice would be if sun would allow some fixed
initialization
code for a JSP, when a taglib is requested by it, but I don't know where
to
send that idea. Second thinging shows: A taglib would then need to have
an initialization at JVM, Server, Application, Session, Request and Page
scope
:-)
* Customization of process method is a lot of work to do, like starting from
scratch. Couldn't be that more modularized so that I can restrict myself
to
the essential coding (I started programming s.th. like having a process
function which essentially returns the JSP URI, not caring about
initialization
and forwarding, when I realized it pulled me away from the application I
need to program and might be different with the next struts-edition...)
Together with the idea of self validating FormBeans (having a own validate
method it should be possible to obtain very short process methods for many
standard cases.
* Consider a different inner error format, not using a vector but a
hashtable
and give the JSP another custom tag, to show the error at the position
created (by having a entryField->Error mapping in the Hashtable)...
* What I really liked would be to have the whole application abstract
automaton
layed out in the action.xml, e.g. there should be a mechanism to reference
a
link just by name (from a Hashtable instead of the getSuccess(),
getFailure()
thingie) and a custom tag for the JSP which is s.th. like a inner link and
does not even contain a HREF but rather a NAME of a link from the recent
action.xml. Currently certain links are both in the action.xml and in the
JSP source code.
I fear, to imlement this one had to change quite a lot from the struts
framework, keeping rather the spirit than the mechanics.
* Give me an easy slot to plug in a XSLT Transform engine (not necessarily
cocoon,
but at least some XSL postprocessing, like piping output once through an
choosen XSL)
Well, maybe it is a different project, but then it had to copy a lot of code
from struts :-)
I'd like to test/use that system but I doubt my personal schedule leaves me
much time to do so. Any specific idea, how I could join the development at a
slow rate?
When are the next updates coming :-)
Cheers,
Frank.
> -----Urspr�ngliche Nachricht-----
> Von: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Gesendet am: Donnerstag, 1. Juni 2000 03:25
> An: [EMAIL PROTECTED]
> Betreff: ANNOUNCEMENT: New JAKARTA-STRUTS Subproject
>
> The Jakarta Project Management Committee is pleased to announce the
> formation of a new subproject called JAKARTA-STRUTS. Struts
> is a small
> framework for building web applications that uses the
> Model-View-Controller (MVC) design pattern commonly known as
> "Model 2".
> It includes the following key features:
>
> * A controller servlet with action mapping technology, which serves as
> the "front component" for the application.
>
> * A comprehensive custom tag library for building internationalized
> JSP pages that interact with JavaBeans managed automatically by
> the controller servlet.
>
> * Useful utility classes that can process XML input, as well as use
> Java reflection to populate JavaBean properties by matching names
> in the same way that <jsp:setProperty name="bean" property="*"/>
> does for JSP pages.
>
> Struts will serve as a platform for exploring the optimum
> approaches to
> implementing the "Model 2" design pattern, and will run on any servlet
> container that supports the Servlet Specification, version
> 2.2 or later,
> and the JavaServer Pages (JSP) Specification, version 1.1 or
> later (such
> as Tomcat). It is also supported by developer and user mailing lists,
> with subscription information available at
> <http://jakarta.apache.org/getinvolved/mail.html>http://jakart
a.apache.org/getinvolved/mail.html</a>.
Nightly distributions of Struts (which includes both the source code and
the compiled libraries) are available at
<http://jakarta.apache.org/builds/struts/nightly/>http://jakarta.apache.org/
builds/struts/nightly/</a>.
Craig McClanahan
===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
JSP-INTEREST".
Some relevant FAQs on JSP/Servlets can be found at:
http://java.sun.com/products/jsp/faq.html
http://www.esperanto.org.nz/jsp/jspfaq.html
http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets
===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
Some relevant FAQs on JSP/Servlets can be found at:
http://java.sun.com/products/jsp/faq.html
http://www.esperanto.org.nz/jsp/jspfaq.html
http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets