|Home |Login |Registration |Struts Step by Step Tutorial |Hibernate Step by Step Tutorial |Spring Step by Step Tutorial |JSP Step by Step Tutorial |JDBC Step by Step Tutorial |Web Services Step by Step Tutorial |EJB fundamentals | ORACLE Step by Step Tutorial
Java mock test | SCJP mock test | SCJP DUMP | SCBCD mock test | SCWCD mock test | JSP mock test | ORACLE mock test | OCP mock test | Hibernate mock test | Servlet mock test | Struts mock test | EJB mock test | C mock test | C++ mock test | Aptitude mock test |Java online test | JSP online test | ORACLE online test | Hibernate online test | Servlet online test | Struts online test | EJB online test | C online test | C++ online test | Aptitude online test
***Java Code Examples*** |Technical Talk
Java interview questions | JSP interview questions | ORACLE interview questions | Hibernate interview questions | Servlet interview questions | Struts interview questions | JDBC interview questions | C/C++ interview questions | Spring interview questions | JMS interview questions | Informatica interview questions | EJB interview questions | OOPS and Design Pattern interview questions
Student Live Projects >>> Tech Talk >>>
                                                                                                                                 
Tutorial Home
Struts Tutorial Home
Spring Tutorial Home
Hibernate Tutorial Home
JSP Tutorial Home
JDBC Tutorial Home
Webservices Tutorial Home
EJB Fundamentals

Hibernate

  1. Advantage of Hibernate over JDBC
  2. Hibernate Setup with an web Application
  3. First Hibernate Application
  4. Hibernate mapping with Database TABLE
  5. Hibernate Data Type-Java Data Type - SQL Data Type mapping
  6. One to Many Relation in Hibernate
  7. One to Many Relation in Hibernate bi-directional
  8. Many to Many Relation in Hibernate
  9. HQL: The Hibernate Query Language
  10. Criteria Queries
  11. Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results
  12. Criteria Queries: And OR conditions
  13. Hibernate generator to generate id (primary key)
  14. prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate

    Struts


  1. Model View Controller (MVC)
  2. Model View Controller (MVC)
  3. Struts Flow-How Struts Works?
  4. Struts Tutorial - Struts Setup- First Struts Action class setup
  5. Message Resources
  6. Validation Framework
  7. Validation Framework-client side
  8. ForwardAction
  9. IncludeAction
  10. DispatchAction
  11. LookupDispatchAction
  12. DynaActionForm
  13. DynaActionForm
  14. Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission
  15. Logic Iterate Map and List

JSP


  1. JSP Tutorial
  2. Introduction to JSP
  3. JSP Comments
  4. JSP Syntax
  5. JSP Scripting Elements :Scriptlet, expression, declaration
  6. JSP Directives
  7. implicit objects in JSP
  8. JSP Actions
  9. Introduction to JSP
  10. jsp:useBean
  11. The jsp:setProperty Action
  12. The jsp:getProperty Action
  13. Introduction to JSP

Spring


  1. Spring Tutorial
  2. Introduction to Spring
  3. Benefits of Using Spring Framework
  4. Inversion of Control in Spring
  5. Introduction to BeanFactory
  6. Dependency Injection in Spring
  7. Collections Setter Injection
  8. Bean Scopes in Spring
  9. Spring IOC Setup Step by Step
  10. Bean Lifecycle in Spring
  11. ApplicationContext
  12. MessageSources in Spring
  13. Web Spring MVC framework
  14. Developing Your First Spring Web Application
  15. Developing Your Second Spring Web Application with Spring Form
  16. Developing Your First Spring Web Application with Spring Validation Framework with Code Example
  17. Spring integration with Hibernate
LookupDispatchAction

LookupDispatchAction is another useful built-in Struts Action. When a set of actions is closely related and separating them into multiple Actions would result in duplication of code you can use LookupDispatchAction. LookupDispatchAction is subclass of DispatchAction.
In case of DispatchAction, you have to declare the method name in the JSP page.
For Example :
http://localhost:8080/emp/empaction.do?step=add // IN CASE OF DispatchAction
here step=add , we are delaring method name in JSP.
or
<html:submit property="step">Add</html:submit> //IN CASE OF DispatchAction
so we can't use localization for button in case of DispatchAction.
To over come both the issues below
a)method name declaration in JSP
b)can't use localization for button
We will go for LookupDispatchAction.

For example : If there are three operation like delete, activate, deactivate employee. You can create three different Actions –
ActivateEmpAction, DeleteEmpAction and DeActivateEmpAction.
This is a valid approach, although not elegant since there might be duplication of code across the Actions since they are related. LookupDispatchAction is the answer to this problem. With LookupDispatchAction, you can combine all three Actions into one.

Follow the below six steps to setup LookupDispatchAction.

Step 1. In the JSP page (empdetails.jsp)

<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:form>
<html:form action="/saveEmp" method="post">
<html:submit property="step">
<bean:message key="button.activate"/>
</html:submit>
<html:submit property="step">
<bean:message key="button.delete"/>
</html:submit>
<html:submit property="step">
<bean:message key="button.deactivate"/>
</html:submit>
</html:form>

//No need method name declaration in JSP . Button name from resource bundle.

Step 2. In the the Resource Bundle. //Here you can add localization.

button.activate=Activate
button.delete=Delete
button.deactivate=DeActivate

Step 3. Adding ActionForm Entry in struts-config.xml

Add the following entry in the struts-config.xml file.

<form-bean name="EmpForm"   
         type="com.techfaq.form.EmpForm">
        
</form-bean>

Step 4. Add action mapping in the struts-config.xml file:

Add the following action mapping in the struts-config.xml file:

<action path="/empaction" type="com.techfaq.action.EmpAction"
     name="EmpForm"
     scope="request"
     validate="true"
     parameter="step"
     input="/jsp/empform.jsp">

    <forward name="delete-success" path="/jsp/deletesuccess.jsp"/>
    <forward name="activate-success" path="/jsp/activatesuccess.jsp"/>
    <forward name="deactivate-success" path="/jsp/deactivatesuccess.jsp"/>
    </action>

Step 5. In the Action class.

Implement a method named getKeyMethodMap() in the subclass of the LookupDispatchAction. The method returns a java.util.Map. The keys used in the Map should be also used as keys in Message Resource Bundle.

public class EmpAction extends LookupDispatchAction {
public Map getKeyMethodMap()
{
Map map = new HashMap();
map.put("button.activate", "activate");
map.put("button.delete", "delete");
map.put("button.deactivate", "deactivate");
}
public ActionForward activate(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception
{
//your logic
mapping.findForward("activate-success");
}
public ActionForward delete(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception
{
//your logic
mapping.findForward("delete-success");
} public ActionForward deactivate(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception
{ //your logic
mapping.findForward("deactivate-success");
}
}

Step 6. In the EmpForm

public class EmpForm extends ActionForm {
int empId;
String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
}

Now in the browser type http://localhost:8080/jsp/empdetails.jsp

for every form submission, LookupDispatchAction does the reverse lookup on the resource bundle to get the key and then gets the method whose name is associated with the key from getKeyMethodmap().
Flow of LookupDispatchAction:
a) Form the button name "Delete" get the key "button.delete" fro resource bundle.
b) then in the Map getKeyMethodMap() find the value associated with the key "button.delete".
c) value from the Map is "delete" . then call delete() method of the same action class.

The information you are posting should be related to java and ORACLE technology. Not political. Your Ad Here