001 package hirondelle.web4j.action; 002 003 import hirondelle.web4j.model.AppException; 004 005 /** 006 <span class="highlight"> 007 Process an HTTP request, and return a {@link ResponsePage}. 008 </span> 009 010 <P><b>This interface is likely the most important 011 abstraction in WEB4J.</b> Almost every feature implemented by the programmer will 012 need an implementation of this interface. 013 014 <P>Typically, one of the <em>ActionXXX</em> abstract base classes are used to 015 build implementations of this interface. 016 */ 017 public interface Action { 018 019 /** 020 Execute desired operation. 021 022 <P>Typical operations include : 023 <ul> 024 <li>validate user input 025 <li>interact with the database 026 <li>place required objects in the appropriate scope 027 <li>set the appropriate {@link ResponsePage}. 028 </ul> 029 030 <P>Returns an identifier for the resource (for example a JSP) which 031 will display the end result of this <tt>Action</tt> (using either a 032 forward or a redirect). 033 */ 034 ResponsePage execute() throws AppException; 035 036 }