I believe this topic has been discussed hundreds of times
in different subjects. One of important tasks for a new
version is to identify concept leaps. This is the place I
would like to entertain your brain - hope everyone to have
a brainstorm on what are really the innovative ideas to be
built in Struts 2.

To start, let's review what the innovative ideas are in
Struts 1.0. Struts is called a MVC framework. But that
is not enough, actually there are many other frameworks also
called MVC ones. What made Struts unique at its early
time is its defining characteristics between form beans and
web forms. They are symmetrical entities.

In Struts 1.1, another concept leap is introduced, we
called it application module. With this concept,
the developments of Struts applications scale up. There
are some other concept leaps, someone could add more.
Struts 1.0/1.1 is recognized as a Controller in general.

Now we have the Struts chain. I like the ideas of the chain.
In particular, I see the possibility we could transform
the Controller into an Integrator based on the chain
and the application module.

Integrator is a higher concept than Controller in my
opinion. Struts 2, as an Integrator, should be able to
1) Integrate faces components from different vendors.
2) Integrate other non-faces component easily, including
   existing 1.x tag libraries.
3) Integrate expression engines from different vendors.
4) We could add more... (like portlets)

The general expectation I have with the Integrator is
that application flows can smoothly move around modules
while underlying module-wide settings for a particular
vendor, say a PropertyResolver in one faces module,
can be switched to a different PropertyResolver in
another module (Expression engines can be switched
too).

This is a whiteboard idea. I like to see the idea to be
unfolded. One of reasons is that a Struts user may be
asked by his/her boss in the future
"If every controller function can be done in Faces or
other frameworks, what do we gain by using Struts 2?"

"Using Struts 2, our applications can cruise across
modules built from different vendors or teams. And
we could also develop modules for others."

Could we realize this dream? I know there are many
challenging problems there. Could we think about it
in terms of defining characteristics of Struts 2?

Jing
Netspread Carrier
http://www.netspread.com






Reply via email to