struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Husted <hus...@apache.org>
Subject Re: Design advice.
Date Mon, 04 Feb 2002 15:38:48 GMT
The work moved over to the Commons, 

http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/workflow/

There is actually some code there, and I put together a quick "Rosetta
Stone" demo here 

http://husted.com/struts/resources/struts-simple.zip

(this really should be named struts-workflow.zip)

but there's more to be done.

-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Java Web Development with Struts.
-- Tel +1 585 737-3463.
-- Web http://www.husted.com/struts/


Bob Williams wrote:
> 
> I am new to this list so I have some catching up to do, so forgive me if
> this is an "old" question.  Mr. Husted refers to the "workflow
> proposal/objects" in his response.  What is the status of the Workflow
> proposal and/or how do I track what is happening there?  I have read the
> proposal, but haven't found anything that refers to the implementation of
> it.
> 
> Thanks for your patience,
> 
> bob
> 
> ----- Original Message -----
> From: "Ted Husted" <husted@apache.org>
> To: "Struts Users Mailing List" <struts-user@jakarta.apache.org>
> Sent: Monday, February 04, 2002 9:11 AM
> Subject: Re: Design advice.
> 
> >
> > An approach I've used successfully, which is looks like where you are
> > going,  is to
> >
> > (1) create a set of standard Actions that can act up a known type of
> > object, or an object that implements a particular interface, and
> >
> > (2) pass the type of the bean to create to the standard Action as the
> > parameter property.
> >
> >  <action
> >   path="/item/Edit"
> >   type="org.apache.gavel.http.SecureHelper" <-- standard section
> >     name="itemForm"
> >     scope="request"
> >      validate="false"
> >       parameter="org.apache.gavel.item.Select"> <-- business bean
> >       <forward
> >         name="continue"
> >           path="/pages/item/Form.jsp"/>
> >        </action>
> >
> >
> > The standard Action can then instantiate the bean and use the interface
> > methods to act upon it.
> >
> > This is akin to the approach Struts uses for ActionForms, et cetera.
> >
> > The "ModelBeans" in the Scaffold/Artimus packages in the Contrib folder
> > demonstrate using this in practice.
> >
> > I now find myself writing signficant applications that use virtually no
> > custom Actions at all, and instead end up putting all the business logic
> > in business beans (where they belong).
> >
> > This is exactly the same idea that Craig proposed in his Workflow
> > proposal (thanks Craig!).
> >
> > When I get a break, I hope to revisit the workflow proposal and see if I
> > can get my apps to do the same thing I'm doing with these standard
> > actions (see Scaffold) with workflow objects.
> >
> >
> > -- Ted Husted, Husted dot Com, Fairport NY USA.
> > -- Java Web Development with Struts.
> > -- Tel +1 585 737-3463.
> > -- Web http://www.husted.com/struts/
> >
> > rob wrote:
> > >
> > > This is a pretty lengthy post so if you're not that interested be warned
> not
> > > to continue.
> > >
> > > I'm trying to develop a struts application that has the ability to have
> new
> > > beans plugged
> > > into it after it's been deployed.
> > >
> > > The idea is someone will come along later and write a new set of
> component
> > > class files
> > > (that also use struts) and can simply modify the struts-config.xml and
> plug
> > > them in.
> > >
> > > I've developed two sets of actions, the first is a set of generic
> actions
> > > that will rely on
> > > methods that will exist by convention in any component that is developed
> for
> > > the
> > > application.  The second set of actions are specific to whatever
> component
> > > is being
> > > plugged in and are specified per action.
> > >
> > > Below I have illustrated an example struts-config.xml that has two
> familiar
> > > components
> > > plugged into it.  A 'Folder' and 'Document' which is a fairly familiar
> idea
> > > to most.  Each
> > > component may implement 4 core operations view, creation, modification
> and
> > > removal.
> > >
> > > I was just wondering if anyone could offer some comments that might be
> > > helpful in
> > > developing the model I am trying to build.  Or by all means any other
> design
> > > advice is
> > > good as well.
> > >
> > > Thanks
> > >
> > > rob
> > > <form-beans>
> > >   <form-bean name="viewFolder"           type="CreateFolderForm"/>
> > >   <form-bean name="viewDocument"     type="CreateDocumentForm"/>
> > >   <form-bean name="createFolder"         type="CreateFolderForm"/>
> > >   <form-bean name="createDocument"   type="CreateDocumentForm"/>
> > >   <form-bean name="modifyFolder"       type="CreateFolderForm"/>
> > >   <form-bean name="modifyDocument" type="CreateDocumentForm"/>
> > >   <form-bean name="removeFolder"       type="CreateFolderForm"/>
> > >   <form-bean name="removeDocument" type="CreateDocumentForm"/>
> > > </form-beans>
> > >
> > > <global-forwards>
> > >   <forward name="view"     type="do/view"/>
> > >   <forward name="create"   type="do/create"/>
> > >   <forward name="modify" type="do/modify"/>
> > >   <forward name="remove" type="do/remove"/>
> > > </global-forwards>
> > >
> > > <!-- begin element independant actions -->
> > > <action path="/view"
> > >   type="ViewAction"
> > >   name="viewForm"
> > >   scope="request">
> > >
> > >   <forward name="view/Folder"
> > >     path="do/viewFolder"/>
> > >   <forward name="view/Document"
> > >     path="do/viewDocument"/>
> > >
> > > </action>
> > >
> > > <action path="/create"
> > >   type="CreateAction"
> > >   name="createForm"
> > >   scope="request">
> > >
> > >   <forward name="create/Folder"
> > >     path="/WEB-INF/pages/createFolder.jsp"/>
> > >   <forward name="create/Document"
> > >     path="/WEB-INF/pages/createDocument.jsp"/>
> > >
> > > </action>
> > >
> > > <action path="/modify"
> > >   type="ModifyAction"
> > >   name="modifyForm"
> > >   scope="request">
> > >
> > >   <forward name="modify/Folder"
> > >     path="/WEB-INF/pages/modifyFolder.jsp"/>
> > >   <forward name="modify/Document"
> > >     path="/WEB-INF/pages/modifyDocument.jsp"/>
> > >
> > > </action>
> > >
> > > <action path="/remove"
> > >   type="RemoveAction"
> > >   name="removeForm"
> > >   scope="request">
> > >
> > >   <forward name="remove/Folder"
> > >     path="/WEB-INF/pages/removeFolder.jsp"/>
> > >   <forward name="remove/Document"
> > >     path="/WEB-INF/pages/removeDocument.jsp"/>
> > >
> > > </action>
> > >
> > > <!-- begin element dependant actions -->
> > >
> > > <action path="/viewFolder"
> > >   type="ViewFolderAction"
> > >   name="viewFolderForm"
> > >   scope="request">
> > >
> > >   <forward name="view.Folder"
> > >     path="/WEB-INF/pages/viewFolder.jsp"/>
> > >
> > > </action>
> > >
> > > <action path="/viewDocument"
> > >   type="ViewDocumentAction"
> > >   name="viewDocumentForm"
> > >   scope="request">
> > >
> > >   <forward name="view.Document"
> > >     path="/WEB-INF/pages/viewDocument.jsp"/>
> > >
> > > </action>
> > >
> > > <action path="/createFolder"
> > >   type="CreateFolderAction"
> > >   name="createFolderForm"
> > >   input="/WEB-INF/pages/createFolder.jsp"
> > >   scope="request">
> > >
> > > </action>
> > >
> > > <action path="/createDocument"
> > >   type="CreateDocumentAction"
> > >   name="createDocumentForm"
> > >   input="/WEB-INF/pages/createDocument.jsp"
> > >   scope="request">
> > > </action>
> > >
> > > <action path="/modifyFolder"
> > >   type="ModifyFolderAction"
> > >   name="modifyFolderForm"
> > >   input="/WEB-INF/pages/modifyFolder.jsp"
> > >   scope="request">
> > > </action>
> > >
> > > <action path="/modifyDocument"
> > >   type="ModifyDocumentAction"
> > >   name="modifyDocumentForm"
> > >   input="/WEB-INF/pages/modifyDocument.jsp"
> > >   scope="request">
> > > </action>
> > >
> > > <action path="/removeFolder"
> > >   type="RemoveFolderAction"
> > >   name="removeFolderForm"
> > >   input="/WEB-INF/pages/removeFolder.jsp"
> > >   scope="request">
> > > </action>
> > >
> > > <action path="/removeDocument"
> > >   type="RemoveDocumentAction"
> > >   name="removeDocumentForm"
> > >   input="/WEB-INF/pages/removeDocument.jsp"
> > >   scope="request">
> > > </action>
> > >
> > > --
> > > To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@jakarta.apache.org>
> > > For additional commands, e-mail:
> <mailto:struts-user-help@jakarta.apache.org>
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> <mailto:struts-user-help@jakarta.apache.org>
> >
> 
> --
> To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>

--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>


Mime
View raw message