Over a million developers have joined DZone.
Silver Partner

Task Driven vs Event Driven on Struts 2 Action

· Java Zone

I had a job to design and develop a new framework for my own development team. We made the decision that we will adopt the Struts 2 as my MVC framework.

Yes i see the benefit from Struts 2 very well, easy to implement and has so many features. Until, my team member said “Hey, i hate Struts very much,  Because i have to put many exception-handling and/or debugger inside many events/methods. Can we use another framework? or just use the servlet mixed with the scriptlet?”

Well i know his concern, it would be easy to read and maintain the code with their exception-handling when your code was still small, but along with the time, you will have your own trouble to maintain the code to stay in a good shape, believe  me, i have had this kind of experience before.

So, i think and try to find a better solution and lucky for me, i found the much better solution with the Task-Driven approach. Maybe for some of you this approach will look like a tricky, but no problem as long as my team could gain a benefit from it and keep the code stay in healthy shape :) .

Well, as a brief introduction for Struts 2. This Action code,perhaps, is the common way that almost every single Struts 2 developer will do. As you can see, you can have many methods that indicates as an “EVENT”

 

As you can see, i have the events/methods execute(), save(), fetch(), and delete().

and you can see on the above code, that you have to do the exception-handling four times, one each method.  For me — and team — one is more than enough, easy to read and maintain the code, especially when exception occur.

Now, my approach is to convert the familiarity of the event-driven into the task-driven.  So, i just have to add a new parameter that i gave name task, as a flagging parameter. In here i will have only 4 tasks to subtitute the 4 methods, “execute“, “save“, “fetch” and “delete“.

Implementing the code is easy, just put one extra attribute on the Action code, i named it task.

And on the JSP, only add a minor change, and i will give you the comparison between the event-driven and task-driven.

As you can see the difference between those 2 slices of code. I dont know how about you, but i love the task-driven Struts more than the event-driven. Maybe it’s relative, the answer could be different for another developer, but the most important for me is now my developers are happier to use Struts.

 

 

Topics:

Published at DZone with permission of Ronald Daniel , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}