Hi,

What i have been doing is the following,
I wrote a simple class , which will hold all the
errors in the business class (An ArrayList whoes each
row is an error or message  ) , and then send back
this class to the Action class, and then in the Action
class i have written logic to build ActionErrors , if
there are any.
So the call to my business class looks some thing like
this
ProcessError error = myBusinessClass.doIt();
where processerror is the place for holdin all
messages
The advantage i got buy doing this, is that i was able
to pass on errors as well information messages to
Action class which will forward them to the view

Ashish
--- John Espey <[EMAIL PROTECTED]> wrote:
> I would have the business components handle their
> own DB connections (they
> shouldn't rely on the presentation layer for that). 
> As far as your errors
> coming back to the presentation layer, I usually
> have a BusinessDelegate
> class that the action makes business calls into. 
> That business delegate is
> responsible for catching exceptions like SQL,
> Remote, IO, etc. and then
> wrapping them into more application/business
> specific exceptions.  Here is a
> good description of the BD pattern:
>
http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.ht
> ml
> 
> 
> 
> -----Original Message-----
> From: mech [mailto:[EMAIL PROTECTED]]
> Sent: Monday, February 03, 2003 12:05 PM
> To: [EMAIL PROTECTED]
> Subject: Design question: Model component using
> Business logic beans
> 
> 
> Hi,
> 
> currently I'm doing all my business logic in my
> Action classes. So
> besides the execute() method I might have some
> helper methods like
> populateFormBean() or I even put those stuff in the
> execute() directly
> if it wasn't to much.
> I have to do quite a lot of database queries to
> populate the form bean
> for the views.
> 
> So actually the Action class should only do the
> controlling. So far so
> good and since things got to much in my Action
> classes I planned to move
> the code out into business logic beans to be
> accessed within execute()
> in order to do all the populate form stuff there.
> 
> It's no problem to use a setter method to give my
> business logic beans
> the reference to my struts connection pool. Also
> fine to do it with the
> form bean.
> 
> One thing, I'm having a bit trouble with migration
> is the ActionError
> stuff.
> 
> Since most of the errors, like lost DB connections
> or the rollbacks of
> db transactions usually happen in my business logic
> beans then, I wonder
> what could be a good practice to pass those errors
> back to the Action
> execute() as I need those information in
> <html:errors/> in my views.
> 
> I guess if I import
> "org.apache.struts.action.ActionError" in my
> business logic, I'm doing a bad job to untie
> business logic from my
> controller, right?
> I guess it would be similar bad like including the
> servlet packages as
> mentioned as a warning in the Struts documentation.
> 
> 
> But on the other hand, it's quite useful to say
> 
>       errors.add(ActionErrors.GLOBAL_ERROR, new
> ActionError("error.something.happend"));
> 
> in my business logic bean in order to log an error
> at the place where it
> occurs, right?
> 
> But to use a setter method in my business logic bean
> writting all those
> errors and retrieving them with a getter method in
> the calling execute()
> requires importing Struts packages...
> 
> 
> Does anyone have good ideas how to untie business
> logic from all
> web-related stuff while still being able to pass
> errors in a
> sophisticated way back to the caller, like it can be
> done with the
> ActionError classes.
> 
> I would appreciate any design hints from everybody
> who doesn't put all
> his business logic code into the Action classes or
> it's execute()
> method, since most books "speak about not to tie
> business logic with the
> controller", but usually do the opposite in the
> sample code. ;-)
> 
> Thanks
> Michael
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 


=====
A$HI$H

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to