WebMacro Servlet Framework
==========================


 Announcing WebMacro 0.85:

     http://www.webmacro.org/

 WebMacro is a Java servlet development framework, including a
 template engine and extensible component model. It uses Java
 introspection to make any object in your servlet accessible
 in your template.

 WebMacro is free under the GPL, with alternate licensing available
 for commercial users.


Is WebMacro Useful?
-------------------

 Try it out yourself, it's free! As for what others think, here's
 what people on our mailing list have to say:

     "FYI Justin, I'm now running over 10 web applications (in
     production) using WebMacro. It runs like a scolded dog, and
     makes it easy for the designers to produce layout, so I can
     concentrate on code.  Keep up the good work."
         -Jason Hill

     "BTW, I really like your philosophy, and the code looks nicely
     done. I was looking at the latest JSP incarnation and my
     stomach was churning. The simple $x.y.z and # syntax you use
     is perfect."
         -Ari Halberstadt

     "so much of webmacro is what I had planned to write on my own, only
     better laid out"
         -Robert Hentosh

     "Finally, thanks for a great product that saves you from the
     problem with writing html-code in your Java sourcefiles!"
         -Jonsson Fredrik

     "I found Webmacro last Friday just as I was completing a suite
     of servlets.  Fetched the mailing list archives (and actually
     read them <g>) and totally loved the concept and the direction
     that webmacro is heading.  I've been rewriting my set of
     servlets and gleefully tearing every shred of HTML code out
     of my java <*very* big grin>."
         -William Featherston

     "Ease of use plus power makes killer apps."
         -Simon Arthur


What's WebMacro for?
--------------------

 The WebMacro philosophy is:

     "Things that you don't care about should get out of your face."

 Or to put it differently, WebMacro allows you to bring model/view/controller
 approach to servlet programming: the servlet (controller) programming is
 written in a standard Java code with no HTML; the front end (view) HTML
 template is written in WebMacro script; and WebMacro provides both with
 access to back end data sources (the model) via the ResourceBroker.

 Programmers should not have their code cluttered up with HTML and
 stylesheet junk. Web page designers should not have to put up with
 complex and scary looking program code.

 WebMacro lets programmers get back to programming--in a full fledged
 programming language; while letting page designers spend more time
 on appearances and less time on figuring out how to get more whitespace
 out of a CGI script.

 You can read more about this philosophy of servlet design in my article
 "Fundamentals of Servlet Design" (http://www.webmacro.org/Servlet.html).
 Or just download WebMacro and try it out for yourself!


What Changed?
------------

   - 0.85 added reloadable templates, cleaned up the WMServlet API,
     added template paths, made it easier to compile under Java 2,
     and fixed several nasty bugs.
   - 0.80 added method calls, generic templates, template parameters,
     list initializer syntax, comments, bug fixes, and a few other things;
     0.80.1 fixes a minor bug in 0.80 (name of error template).
   - 0.75 added the component model, full fledged introspection
     0.75.3 fixes all bugs reported as of January 22 1998
   - 0.70 more back end services, better design, and fewer bugs
   - 0.60 script language mostly in place, minimal introspection, many bugs
   - 0.30 WebMacro said "Hello, World!" in a secret experiment

 Pre 1.0 version numbers indicate what percentage of the full feature
 set has been implemented. Most features are now in place; many bugs
 have been fixed-- but we still have a few important things to do
 before we can release 1.0.


What are the Advantages?
------------------------

   * Clarity. Simple, obvious script language with minimal syntax.

   * Power. Templates can access any object in your Java servlet.

   * Elegance. Keep HTML out of your servlet code.

   * Independence. Build or change templates without touching your servlet.

   * Extensibility. Component model lets you to extend and customize WebMacro.

   * Friendly. WebMacro won't confuse your XML/HTML editor or parser.

   * Free. WebMacro is available under the GNU Public License.


I Need an Example!
------------------

 The WebMacro introspector analyzes your objects, and figures out that
 in the template $MyStuff.Customer.Fred.Email, which you could
 stick anywhere, resolves to the String value of
 context.get("MyStuff").getCustomer("Fred").Email. In addition,
 WebMacro provides a layout oriented, simple script which
 you can use to control page content. Here's an example:

     <h1>Products for $Store.Name as of $Store.Date</h1>

     <table><tr><td>What We Have</td> <td>How Many Left</td></tr>

     #foreach $product in $Store.Products {
       <tr><td>$product.Name costs \$$product.Price</td>

       #if ($product.isAvailable()) {
         <td>There are $product.Count in stock</td>
       } #else {
         <td>Sorry, out of stock.</td>
       }

       </tr>
     }
     </table>

 The template language has access to a lot of the back end functionality
 by way of special variables like $Cookie, $Response.Header, etc.

 From the programmers point of view, Store, Product, etc., are
 just regular objects. No work is required to open them up to the
 introspector--just toss them in a WebMacro hashtable and it will
 work out what properties and sub-objects are available.

 See the website to learn more.


Where is It?
------------

  website: http://www.webmacro.org/

  list:    [EMAIL PROTECTED]

  me:      [EMAIL PROTECTED]


WebMacro is now usable, but still experimental. Everyone interested is
encouraged to join the mailing list to contribute ideas--without the
valuable contributions of Tom, Cristi, Frank, Simon, Klaasjan, Kyallee,
Graydon, Michael, Dirk, and everyone else who contributed ideas, code,
and bugs, we wouldn't be where we are--Thanks!

Justin Wells / [EMAIL PROTECTED]

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to