Version 1.2 of WebWork is now available. The release includes significant improvements and marks the first release since integrating into the OpenSymphony project (home of SiteMesh, OSCache, etc). WebWork is a pull HMVC web application framework in Java, developed as Open Source (Apache license).
Visit http://www.opensymphony.com/webwork).
More info
=======================
WebWork is a pull HMVC web application framework in Java, developed as Open Source (Apache license) and designed to help create dynamic websites using minimal effort and maximum flexibility.
WebWork is *not* just another MVC framework. Its clean architecture allows it to support a multitude of views. This view separation allows you to easily switch between different view technologies without changing the logic that produces the data. For instance, you can go from HTML to Swing to PDF to XSLT to Velocity all with the same model. In addition, it provides the developer with a powerful expression language that allows you to easily navigate its object stack to retrieve and write data. This makes retrieving and setting objects in the view and action trivial. Remember in WW, the idea of a form bean and handler are one. Its small but complete tag library includes a set of UI tags brilliantly architected allowing you to easily customize its view by changing out its jsp template with your own template. If you don't like the provided template view for SELECT, then plug in your own. It provides support for i18n, redirection, error handling, validation, command driven actions, chaining actions, and will handle those pesky type conversions for you automatically going from web to action. For more insightful user comments, visit (http://radio.weblogs.com/0107789/stories/2002/07/09/whyILikeWebwork.html).
Some new features in this release:
New view support:
- Jasper Report View - This view technology provides support for PDF reports. (see http://www.sf.net/projects/jasperreports)
- VXML View - This view technology provides support for Voice XML
Misc:
- Action chaining - You can now chain your actions together allowing you to modularize and easily reuse logic.
- Parameter to Action attribute type conversion - WW provides you the ability to automate type conversion from HTTP request parameters to primitive and/or object attributes in you actions including arrays. This greatly reduces the type conversion burden.
- Implicit support for multi-part content - WW wraps the request to allow you to view multi-part request as a normal HTTP request.
- Numerous other bug fixes and improvements
For more information on WebWork, visit its website at (http://www.opensymphony.com/webwork). For download information, visit (http://sourceforge.net/projects/opensymphony).
For more information on OpenSymphony and its other products like SiteMesh, OS Workflow, OS Cache, and more, visit (http://www.opensymphony.com).
-----------
OpenSymphony (http://www.opensymphony.org) is a Java open source (http://www.opensource.org) project designed to provide application developers with a suite of components for rapid development of enterprise class Java applications.
-Matt Baldree
-
WebWork 1.2 Web Application Framework Released (33 messages)
- Posted by: matt baldree
- Posted on: August 23 2002 23:17 EDT
Threaded Messages (33)
- WebWork 1.2 Web Application Framework Released by Ray Harrison on August 26 2002 13:56 EDT
- WebWork 1.2 Web Application Framework Released by Chris Richard on August 26 2002 14:18 EDT
- WebWork 1.2 Web Application Framework Released by Rick Salsa on August 26 2002 02:40 EDT
- WebWork 1.2 Web Application Framework Released by Chris Richard on August 26 2002 14:18 EDT
- WebWork 1.2 Web Application Framework Released by Yu Guisuo on August 26 2002 20:30 EDT
- WebWork 1.2 Web Application Framework Released by Toby Hede on August 26 2002 21:20 EDT
- WebWork 1.2 Web Application Framework Released by jelmer kuperus on August 27 2002 04:52 EDT
- WebWork 1.2 Web Application Framework Released by Sanjeevakumar Hiremath on August 27 2002 05:39 EDT
- Performance? by Frank Febbraro on August 27 2002 08:38 EDT
- WebWork 1.2 Web Application Framework Released by Shane Crawford on August 27 2002 08:50 EDT
- WebWork 1.2 Web Application Framework Released by Tendayi on August 27 2002 12:32 EDT
-
WebWork 1.2 Web Application Framework Released by Hamdi Yusof on August 28 2002 12:40 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 09:45 EDT
-
WebWork 1.2 Web Application Framework Released by Rickard Oberg on August 28 2002 02:03 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 02:25 EDT
- WebWork 1.2 Web Application Framework Released by Rickard Oberg on August 29 2002 02:02 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 02:53 EDT
- WebWork 1.2 Web Application Framework Released by Don Brown on August 28 2002 04:36 EDT
- WebWork 1.2 Web Application Framework Released by Hamdi Yusof on August 28 2002 08:26 EDT
-
WebWork 1.2 Web Application Framework Released by Rod Brehm on August 28 2002 09:58 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 10:56 EDT
-
WebDesigners and Java Developers by Howard Lewis Ship on August 29 2002 09:37 EDT
-
WebDesigners and Java Developers by Stefan Mischook on August 29 2002 10:05 EDT
- WebDesigners and Java Developers by Juergen Hoeller on August 29 2002 05:08 EDT
-
WebDesigners and Java Developers by Stefan Mischook on August 29 2002 10:05 EDT
-
WebDesigners and Java Developers by Howard Lewis Ship on August 29 2002 09:37 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 10:56 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 02:25 EDT
-
WebWork 1.2 Web Application Framework Released by Rickard Oberg on August 28 2002 02:03 EDT
-
WebWork 1.2 Web Application Framework Released by Chris Richard on August 28 2002 09:45 EDT
-
WebWork 1.2 Web Application Framework Released by Hamdi Yusof on August 28 2002 12:40 EDT
- WebWork 1.2 Web Application Framework Released by Tendayi on August 27 2002 12:32 EDT
- WebWork 1.2 Web Application Framework Released by Yu Guisuo on August 27 2002 20:24 EDT
- WebWork 1.2 Web Application Framework Released by lei jun on August 27 2002 22:04 EDT
-
WebWork 1.2 Web Application Framework Released by Yu Guisuo on September 02 2002 08:37 EDT
- WebWork 1.2 Web Application Framework Released by Deepak Pai on September 04 2002 03:20 EDT
-
WebWork 1.2 Web Application Framework Released by Yu Guisuo on September 02 2002 08:37 EDT
- WebWork 1.2 Web Application Framework Released by lei jun on August 27 2002 22:04 EDT
- Wafer project by Sean Sullivan on August 28 2002 16:51 EDT
- WebWork 1.2 Web Application Framework Released by Juergen Hoeller on August 29 2002 05:40 EDT
- WebWork 1.2 Web Application Framework Released by Lars Fischer on August 29 2002 06:45 EDT
- Barracuda by Sean Sullivan on August 30 2002 16:02 EDT
- Struts alternative: Tea by Sean Sullivan on August 30 2002 16:03 EDT
- Struts alternative: Tea by Sean Sullivan on August 30 2002 18:21 EDT
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Ray Harrison
- Posted on: August 26 2002 13:56 EDT
- in response to matt baldree
I give high marks to WebWork - it is an excellent framework. The speed with which I was able to be up and highly productive was amazing. I use it quite effectively with Sitemesh. Great work!
Cheers
Ray -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Chris Richard
- Posted on: August 26 2002 14:18 EDT
- in response to Ray Harrison
How does it help page designers to work on jsp/html independent of java/bean developers?
I know struts pages can be visually done using ultradev, is anything available to use WW for visual page design?
Regards,
Chris -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Rick Salsa
- Posted on: August 26 2002 14:40 EDT
- in response to Chris Richard
If you're using Dreamweaver MX (if you aren't, you should :)), you can specify a .jar or .tld file to get access to the tag library in code view.
For webwork, just point Dreamweaver to where you have your webwork.jar file and that's it.
HTH,
/rick -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Yu Guisuo
- Posted on: August 26 2002 20:30 EDT
- in response to matt baldree
I will try the framework recentlly,and hope it can give me a hard foundation of the software. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Toby Hede
- Posted on: August 26 2002 21:20 EDT
- in response to matt baldree
I have been using WebWork for some time on my projects, and it is the best framework I have encountered. It is an incredibly streamlined and agile model for development that I believe is much more accessible than more monolithic frameworks such as Struts. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: jelmer kuperus
- Posted on: August 27 2002 04:52 EDT
- in response to Toby Hede
any word on flash integration ? -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Sanjeevakumar Hiremath
- Posted on: August 27 2002 05:39 EDT
- in response to matt baldree
Is there any documentation available in PDF format!. It was available for previous release and no I cann't see any more. Could some guide me where I can download the same!
SH -
Performance?[ Go to top ]
- Posted by: Frank Febbraro
- Posted on: August 27 2002 08:38 EDT
- in response to matt baldree
I plan on using this on my next project. Has anyone run into any performance problems with it? Even under ridiculous circumstances?
I've written my own over the years and would like to go with something that more people are using, but not somethign that takes forever to setup and/or customize. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Shane Crawford
- Posted on: August 27 2002 08:50 EDT
- in response to matt baldree
How does WebWork compare to Cocoon (an Apache XML project)? -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Tendayi
- Posted on: August 27 2002 12:32 EDT
- in response to Shane Crawford
Shane
The two frameworks solve different problems.
Cocoon is an XML web-publishing framework (basically it powers XML based websites, wap-sites etc), while WebWork is a framework for developing web-based applications.
A subtle but import difference.
Regards
Tendayi -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Hamdi Yusof
- Posted on: August 28 2002 00:40 EDT
- in response to Tendayi
I don't quite understand. Reading the features for webwork, I feel that it competes directly with even Cocoon. I'm not familiar with webwork, not yet, but I'm somewhat familiar with velocity and xslt. My understanding is that one can move their Cocoon based application to webwork. The xslt may or may not change, whilst the xsp need to change to whatever is comparable /suitable in webwork. Another approach with webwork is to curn out xml using velocity.
I really like the month list speed comparison between a jsp using heavy tags and velocity, though I guess it is not intended to be that. It's a real eye opener for me. Velocity rocks! -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Chris Richard
- Posted on: August 28 2002 09:45 EDT
- in response to Hamdi Yusof
What's this "month list comparison"? Can you share the results here so we dont have to download/run any samples of velocity.
Thanks,
Chris -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Rickard Oberg
- Posted on: August 28 2002 14:03 EDT
- in response to Chris Richard
The "month list" is just a very simple calendar thing that shows a list of all dates in a year, and highlights the current date. However, it excercises the most important JSP tags such as "iterator","property", and "if". I converted that JSP to use Velocity and the performance differences were quite interesting. The *best* JSP engines can run the page in about 80-100ms (with the worst one being around 3-400ms, guess which one), while Velocity easily renders it in between 30-40ms, and sometimes even as low as 20ms.
This is a big difference, which highlights how the Velocity execution model is significantly faster. The good thing is that it will have more or less the same performance characteristics on different servlet engines. Unfortunately (or fortunately, depending on who you work for) JSP engines have very different performance characteristics, and the most widely used OpenSource engine just plain s*cks.
That's what the "month list comparison" is all about.
/Rickard
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Chris Richard
- Posted on: August 28 2002 14:25 EDT
- in response to Rickard Oberg
Rickard,
Thanks for the overview. I am surprised that even Jetty/Resin s*cks in your testing.
Probably Velocity should be part of J2EE instead of JSP.
Anyway, question is how do you compare the performance of month-list while using WebWork?
Chris. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Rickard Oberg
- Posted on: August 29 2002 02:02 EDT
- in response to Chris Richard
Chris,
There's a performance testing example tool included in WebWork. Deploy the examples, hit index.html and select "Hit URL". Enter the URL you want it to load and fire away. This is very useful for simple testing of your own apps as well.
/Rickard
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Chris Richard
- Posted on: August 28 2002 14:53 EDT
- in response to Rickard Oberg
Guys,
Just think about a poor chap starting on a new web-app project. It might take him weeks to decide which presentation technology/framework to choose from. People do like almost all of them (JSP with struts/webwork, Velocity, Tapestry etc etc etc). And this is all without any requirement of xml processing. So, we must have a way to categorize requirements with the recommended framework to save people time. Even voting based on applications in production can help.
Something to start with.
Category A
transactional web-apps
1. JSP with struts
2. Webwork
3. Velocity
4. Tapestry
5. cXml
Category B
Xml content centric web-apps
1. JSP and related techs.
2. Cocoon.
3. ??? -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Don Brown
- Posted on: August 28 2002 16:36 EDT
- in response to Chris Richard
Where would something like stxx (http://stxx.sf.net) fit in? It is an XSLT engine that works off struts (replaces strut's JSP dependency) Granted I'm one of the developers, but I feel its a good compromise for those who like the flexibility of xml/xsl but don't want the complexity of cocoon. It can even co-exist with traditional struts/jsp pages.
Don -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Hamdi Yusof
- Posted on: August 28 2002 20:26 EDT
- in response to Chris Richard
I dunno. I don't think velocity is 'equivalent' to struts/webwork/tapestry/etc. It can be used in some of these frameworks. I have only evaluated Cocoon ver 1.8.2 last year for a few weeks and found xsp to be an unnecessary hardship to go thru.
I eventually created my own simple framework that allows the views to be either xslt or velocity. Now it seems that webwork supports this and much more, thus making it a viable framework for us to move to.
I like webwork's flexible support for the views. Very nice. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Rod Brehm
- Posted on: August 28 2002 21:58 EDT
- in response to Chris Richard
I am one of these poor chaps starting a personal web-app, and am having this exact struggle. I have been looking into struts, and am ready to go with it, but want to be sure before I get too far down the road.
So...the app I am building mainly consists of data entry/manipulation screens as well as multiple reporting capabilities. So, the user will essentially be logging in, manipulating data, and doing research with current data via multiple JSP pages.
Does this sound like a candidate for JSP/struts?
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Chris Richard
- Posted on: August 28 2002 22:56 EDT
- in response to Rod Brehm
Yeah, but it can also be done thru WebWork, Tapestry and cXML etc. Real question is which one is best. One of the prime objective should be to have web-designer work independently of java developers. If they are able to view dynamic pages (with template/sample data) and make pages visually (say using DreamWeaver MX), that's a big plus. I know JSP/Struts can be done using DreamWeaver. Not sure about others.
Another advantage of struts/jsp is that now you can have your application "J2EE verified" which can help in marketing.
Chris -
WebDesigners and Java Developers[ Go to top ]
- Posted by: Howard Lewis Ship
- Posted on: August 29 2002 09:37 EDT
- in response to Chris Richard
I know that one of the primary design goals of Tapestry; Tapestry HTML templates are just standard HTML documents where some of the tags are marked as components (by adding a "jwcid" attribute to them). They are designed to still preview properly in a WYSIWYG editor even after being instrumented.
Because Tapestry moves the specification of what each component is into a seperate file (the page or component specification), there's virtually no "chaff" in the HTML.
Tapestry also will edit out portions of the HTML template that exist just as examples for previewing.
Example: To display the current user's name and the date of their last login:
Hello, <span jwcid="insertUserName">Joe User</span> you last logged in on <span jwcid="insertLastLogin">Jan 1 2002</span>.
This previews fine in an HTML editor.
At runtime, the two <span> tags and thier contents are removed and replaced with actual content, presumably drawn from a database persistent object.
You can really hide the components with minimal effort, i.e.,
<tr jwcid="eachLineItem">
<td><span jwcid="insertName">Product Name</span></td>
<td><span jwcid="insertQuantity">1</span></td>
...
</tr>
Here, a Foreach component (a component that iterates over a collection of objects and renders its body for each one), is "hidden" inside a <tr> tag.
Anyway, that's more than enough imposition on a WebWork thread ... I just couldn't resist pointing out one of my favorite features of Tapestry.
http://tapestry.sf.net
-
WebDesigners and Java Developers[ Go to top ]
- Posted by: Stefan Mischook
- Posted on: August 29 2002 10:05 EDT
- in response to Howard Lewis Ship
Hi,
I have been following this thread and also been looking at many of these web frameworks that are out there. It seems to me that for the most part the advantage of using these frameworks really come into play in projects where there are many developers involved. More specifically when there are a clear mix of Java people and HTML people.
I have been looking for that 'magic bullet'if you will, that would speed up things for my own personal projects. I haven't really found a speed increase using things like WO or ASP.net which is in many ways is like WO's and I would guess Tapestry?
In my experience the time consuming stuff is in the validations (solved with a simple bean packed with the correct methods) and database interaction. Handling how the user moves in the system in really a no brainer if you understand the DOM and use a simple MVC setup.
I guess if you need to create multiple views and perhaps some other specialized uses that come pre-built in a framework you might also find advantage. But then a again it is amazing what a some custom tags can do...
I am intersted what others think of what I have said, does it make sense or am I missing something here?
Stef -
WebDesigners and Java Developers[ Go to top ]
- Posted by: Juergen Hoeller
- Posted on: August 29 2002 17:08 EDT
- in response to Stefan Mischook
Stefan,
<quote>
I have been following this thread and also been looking at many of these web frameworks that are out there. It seems to me that for the most part the advantage of using these frameworks really come into play in projects where there are many developers involved. More specifically when there are a clear mix of Java people and HTML people.
</quote>
Same here. I have also been looking quite extensively at numerous web frameworks, and I have basically come to the same conclusion. Often you just do not gain anything but rather complicate simple things.
Clean MVC is indeed a no-brainer for many types of applications. I have introduced an extremely simple approach to my team: Basically custom controller servlets that do all the processing and view JSPs that render the results. Instead of custom controller servlets, you can also use JSPs that just contain Java code and redirect at the end (JSPs with automatic recompilation may be easier to handle for HTML developers). This approach has been sufficient for more than two years, numerous web applications, and numerous Java web developers and HTML designers.
Conceptionally, these custom controller servlets are similar to Struts actions and can do everything those can do: populate one or more plain beans used for forms or parameters, perform validation, process data, generate results or errors and put them into request or session scope, redirect to an appropriate view. They can be mapped to action URLs via standard servlet mappings. Init parameters like view URLs can be handled via Servlet init parameters, global ones with ServletContext init parameters. This is easy to understand, extremely flexible, does not need many lines of code, and works nicely without MVC framework restrictions and without overhead.
The only "libraries" necessary for writing controllers are something like the Jakarta Commons BeanUtils class for populating beans from request parameters, and a simple ActionServlet base class to ease controller implementation.
View JSPs can be written nicely with JSTL (JSP Standard Tag Library) and its EL (Expression Language). But even without any tag library at all, view JSPs and not hard to write and maintain if you can live with some simple JSP expressions and scriptlets (even by HTML developers, in my experience). Forms contain the mapped action URLs as targets and can be filled with current values from one or more appropriate beans in request or session scope.
Note that I do see fields of application for MVC frameworks like Struts or WebWork, especially for large applications and large development teams. But for many types of web applications, I don't really see a need for more than some simple custom guidelines for MVC design, accompanied by a few helper classes and a good tag library like JSTL.
Juergen -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Yu Guisuo
- Posted on: August 27 2002 20:24 EDT
- in response to matt baldree
dear all:
why can not I download the framework,can anybody be kindly to tell me another place to download it?
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: lei jun
- Posted on: August 27 2002 22:04 EDT
- in response to Yu Guisuo
:) I've downloaded it, can you give me a FTP site where I can upload it for you ? -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Yu Guisuo
- Posted on: September 02 2002 20:37 EDT
- in response to lei jun
thanks,I don't have avaliable ftp address here ,if the package is not big,can you post it to my e-mail,yuguisuo at bjums dot com,thanks again. -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Deepak Pai
- Posted on: September 04 2002 15:20 EDT
- in response to Yu Guisuo
http://www.nextapp.com/products/echo/
This is a nice framework. No HTML/JSP/Java Script guys to work with. If you can handle swing like applications you can develop using ECHO framework. -
Wafer project[ Go to top ]
- Posted by: Sean Sullivan
- Posted on: August 28 2002 16:51 EDT
- in response to matt baldree
http://www.waferproject.org/index.html
{{
Wafer is a research project which compares the many open source web application frameworks which are available using a common example application. This research project is designed to compare the application frameworks on a level field by specifying an example application so that the application features become irrelevent and the merits of each framework becomes the focus.
The first phase of this project is to identify and examine the numerous open source web application frameworks written in Java. The reason for the focus on Java is because it is one of the primary languages used for developing web based applications for Enterprises at this time. In the future we will also examine frameworks in other languages, including Perl, PHP, and possibly .NET.
Since this project is open source it aims to identify and evaluate open source frameworks only at this time. Consideration of free but proprietary frameworks will be examined in the future.
}}
-
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Juergen Hoeller
- Posted on: August 29 2002 05:40 EDT
- in response to matt baldree
Concerning WebWork's EL vs. JSTL's (and JSP 2.0's) EL: Will WebWork switch to standard EL at some time or keep its own? In the latter case, based on which arguments? -
WebWork 1.2 Web Application Framework Released[ Go to top ]
- Posted by: Lars Fischer
- Posted on: August 29 2002 06:45 EDT
- in response to Juergen Hoeller
Has anyone tested WW with WebLogic Server 7.0 ?
Many of the examples don't work on my machine (e.g. HelloWorld). The result is: 500 - Internal Server Error. -
Barracuda[ Go to top ]
- Posted by: Sean Sullivan
- Posted on: August 30 2002 16:02 EDT
- in response to matt baldree
article: Barracuda compared to other Web/MVC frameworks
http://barracuda.enhydra.org/cvs_source/Barracuda/docs/landscape.html
http://barracuda.enhydra.org/
-
Struts alternative: Tea[ Go to top ]
- Posted by: Sean Sullivan
- Posted on: August 30 2002 16:03 EDT
- in response to matt baldree
The Tea framework is cool:
http://opensource.go.com/
The framework is discussed in Jason Hunter's book: Java Servlet Programming -
Struts alternative: Tea[ Go to top ]
- Posted by: Sean Sullivan
- Posted on: August 30 2002 18:21 EDT
- in response to Sean Sullivan