And I must confess that at first glance I like it. It may sound weird comming from an WebWork/SAF developer, but hey, I am doing my best to be objective. I also have to confess that I haven't got time to really play with it, and I just passed through the documentation, which by the way is well written and clean.
Talking about the rationale behind it (sounds like RoR success story [smile/]):
The main driver behind Stripes is that web application development in Java is just too much work! [...] Others, like WebWork 2 and Spring-MVC are much better, but still require a lot of configuration, and seem to require you to learn a whole new language just to get started.The framework looks like needing almost no configuration (
Zero external configuration per page/action (ActionBeans are auto-discovered, and configured using annotations)), tries to eliminate the need to duplicate domain object over the web layer and makes heavy usage of Java5 annotations (f.e. even for URL binding: UrlBinding).
[...] But that doesn't mean that it can't run on a Java 1.4 JVM.and you can read a 2 page HowTo for using Stripes with 1.4 JVMs. There are many other interesting, and I would say important aspects needed for building a normal web app, but I am not gonna describe it here (because I haven't gained the knowledge to do it and I may present wrong ideas). Here it is a short list of things that I found interesting:
- Use Defaults More
- Spring with Stripes
- Indexed properties
- Intercept Execution
- Localization (in fact I18N support)
- Layout Reuse
6 comments:
I agree it looks pretty cool. I especially like their how they've used Confluence to cleanly organize their documentation. It looks so good I'm tempted to migrate AppFuse's JSPWiki documentation to Confluence. ;-)
I agree - Stripes is very nice. You can do some of that same convention-based configuration in WebWork as well by developing a custom ActionMapper and ConfigurationManager. I've done this for a couple projects, including HostedQA. The result is nice URLs (see the friendly URLs like this one). To create that action, I didn't edit xwork.xml (there isn't one!), but instead created the class com.hosedqa.action.project.session.suite.ListAction. That action even gets the projectId (7, in this case) set automatically.
We can definitely do better in making this type of development the default style in WebWork/SAF2.
Matt, I would definitely recommend you to take a look at Stripes. If you don't like it (or at least its principles) than you can blame me [blink/].
./alex
--
.w( the_mindstorm )p.
Pat, I know about ActionMapper and I even tried to use it for InfoQ. But, I ended up using URLRewriteFilter (and some tips and tricks).
And, IMO we should definitely try to make it better in WebWork/SAF2.
./alex
--
.w( the_mindstorm )p.
Alex,
But it's more than just the action mapper - the custom ConfigurationManager allowed for conventions and annotations to be used. There is no xwork.xml file. I definitely agree it doesn't do much good if this isn't in the framework itself though :) I'm thinking about releasing it in the form of a sample webapp in WebWork 2.2.3. Then people can be free to tweak the code as they see fit. That should be good enough until we get a solid implementation in SAF2.
Patrick
re: stripes, yes I am pretty sure you can do the same stuff with WW2 or SAF2 by writing some smart custom component, but that is the whole point: Stripes is so ridiculously easy to use, it makes so much sense (especially if you have an action-orientated mindframe because of years of using struts/ww/yet another mvc framework), and it's all builtin.
The documentation kicks ass, but then the framework is so compact and so simple to use it must be quite easy to maintain ;-)
The tipping point for me was when I downloaded stripes for the first time and was porting a struts application 30mn later...Eclipse auto-completes the annotations from stripes, natural and simple integration with spring, clear extension points, easy to remember conventions...
Yes, you definitely want to look stripes' way if you want your framework to succeed against the next gen web development tools...
Post a Comment