advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Strictly Struts :

Validating user input and business rules

Now there is a question and half about who checks the data that is passed to the business layer. Again, think about the MVC pattern. The View component i.e. the presentation layer should not know anything about the business logic that goes around the data. What it can know however is the data type and thus should only perform the data type validation. To make things clearer, let us say when we are creating a new Student through the Student registration application, the presentation layer can check for that student user_id cannot be blank and it should always be a 8 character long. What the presentation should not check is that if the user_id specified is already in use. The mandatory nature of the user_id and the check for the 8 character length is what we call data type validation. The uniqueness of the user_id is however a business rule that mandates that every Student should have unique user_id. The Action classes cannot take responsibility of such validations. If you start performing business rule validations within the Action classes, you again lose the separation between data and presentation.

Lesson 2: Action classes should only perform data type validations. Any business rule validation is to be solely done by the Business tier components.

More than one methods in Action class

Often you will find that you are doing some closely coupled operations on a particular business entity. For example, Creating, Reading, Updating and Deleting (CRUD) of Student data are closely related operations all being performed on a single business type Student. It is sometimes good idea to combine all these related functionalities within the same action class. You can do so by extending your own Action class from Struts DispatchAction class and instruct the Struts framework to invoke any desired method from a set of methods defined within that Action class. The Struts framework works on an extra parameter passed to the framework identifying the method to be invoked. For example, the following Action class is an example of a DispatchAction.

public class StudentAction extends DispatchAction
{
  /**
   * create method
  */
   public ActionForward create(ActionMapping mapping, ActionForm form,
                                                HttpServletRequest req, 
HttpServletResponse res) throws Exception
{
   return something;
}
 
  /**
   * read method
  */
   public ActionForward read(ActionMapping mapping, ActionForm form,
                                                HttpServletRequest req, 
HttpServletResponse res) throws Exception
{
   return something;
}
 
/**
   * update method
  */
   public ActionForward update(ActionMapping mapping, ActionForm form,
                                                HttpServletRequest req, 
HttpServletResponse res) throws Exception
{
   return something;
}
 
/**
   * delete method
  */
   public ActionForward delete(ActionMapping mapping, ActionForm form,
                                                HttpServletRequest req, 
HttpServletResponse res) throws Exception
{
   return something;
}

Now to use this class successfully, you need to have the following configuration in the Struts configuration file.

In this configuration file the value of the parameter methodToCall determines the method in the StudentAction class to be invoked. For example, the JSP from which you are calling this action, can set the methodToCall parameter to any of the methods it wants to.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs