Showing posts with label JSP. Show all posts
Showing posts with label JSP. Show all posts

Thursday, May 16, 2013

Session Tracking using SessionAware Interface with Struts2, Oracle Database and Eclipse IDE

In this Tutorial we are performing Session Tracking using SessionAware Interface and this interface is used by actions that want to access user's http session which will give them access to a Map where they can put objects that can be made available to subsequent requests.



Here we are not Performing any type of Validation so for validation part go for other Tutorials.

Project Structure in Project Explorer:

Download Struts2 Jars

Struts2 jars setting, for More Details Read How to set Struts2 Environment
Java Build Path Libraries
you can't see struts2 jar here because we directly put it inside lib folder.
Deployment Assembly
Download Oracle JDBC jars

Create a Database Table and make two rows entry in it as shown below:
Login to oracle database and create table using GUI
Register Table
Register Table Data
login.jsp
create a user Login page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
      pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>welcome page</title>  
 </head >  
 <body>  
 <h4 align=right><a href=login>Login</a></h4>  
     <h5 align=right><a href=login.jsp>Home</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
 <center><h1>Login</h1>  
 <form action="login">  
           <table>  
                <tr>  
                     <td>UserName</td>  
                     <td><input type="text" name="uname" /></td>  
                </tr>  
                <tr>  
                     <td>Password</td>  
                     <td><input type="password" name="upass" /></td>  
                </tr>  
                </table>  
           <input type="submit" value="Login" /><br/>  
           </form></center>  
 </body>  
 </html>  

struts.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE struts PUBLIC  
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   "http://struts.apache.org/dtds/struts-2.0.dtd">  
   <struts>  
   <package name="log" namespace="/" extends="struts-default">  
   <action name="login" class="in.blog.webideaworld.LoginAction" method="execute">  
   <result name="success">/user.jsp</result>  
   <result name="error">/login.jsp</result>  
   </action>  
   <action name="logout" class="in.blog.webideaworld.Logout" method="logout">  
   <result name="success">/login.jsp</result>  
   </action>  
   <action name="profile" class="in.blog.webideaworld.Profiledirect" method="execute">  
   <result name="success">/profile.jsp</result>  
   </action>  
   <action name="profile1" class="in.blog.webideaworld.Profiledirect" method="execute">  
   <result name="success">/update.jsp</result>  
   </action>  
   <action name="home" class="in.blog.webideaworld.Profiledirect" method="execute">  
   <result name="success">/user.jsp</result>  
   </action>  
   <action name="update" class="in.blog.webideaworld.UpdateProfile" method="execute">  
   <result name="success">/success.jsp</result>  
   </action>  
   </package>  
   </struts>  


web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>Struts2_SessionTracking</display-name>  
  <welcome-file-list>  
   <welcome-file>/login.jsp</welcome-file>  
    </welcome-file-list>  
    <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>  
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
    </filter-class>  
   </filter>  
   <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
   </filter-mapping>  
 </web-app>  

DBconn.java
 package in.blog.webideaworld.dao;  
 import java.sql.Connection;  
 import java.sql.DriverManager;  
 import java.sql.Statement;  
 public class DBconn {  
      Statement st;  
      public Statement getSt()throws Exception {  
           Class.forName("oracle.jdbc.OracleDriver");  
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","hr","hr");  
          st=conn.createStatement();  
          return st;  
      }  
 }  

LoginAction.java
create a Action java class for Login. SessionAware interface has a setSession(Map m) method which sets the Map of session attributes in the implementing class.
 package in.blog.webideaworld;  
 import java.sql.ResultSet;  
 import java.sql.Statement;  
 import java.util.Map;  
 import in.blog.webideaworld.dao.DBconn;  
 import org.apache.struts2.interceptor.SessionAware;  
 import com.opensymphony.xwork2.ActionSupport;  
 @SuppressWarnings("serial")  
 public class LoginAction extends ActionSupport implements SessionAware {  
      private String upass;  
      private String uname;  
      Map m;  
      public String getUpass() {  
           return upass;  
      }  
      public void setUpass(String upass) {  
           this.upass = upass;  
      }  
      public String getUname() {  
           return uname;  
      }  
      public void setUname(String uname) {  
           this.uname = uname;  
      }  
      public void setSession(Map m)  
      {  
           this.m=m;  
      }  
       public String execute() throws Exception{  
        try{  
            Statement st=new DBconn().getSt();  
            ResultSet rs=st.executeQuery("select * from register where uname='"+uname+"' and upass='"+upass+"'");  
            if(rs.next())  
            {    
                 m.put("id", rs.getInt(1));  
                 m.put("uname",rs.getString(2));  
                   m.put("upass", rs.getString(3));  
                 return SUCCESS;  
            }  
           }  
           catch (Exception e) {}  
          return ERROR;  
      }  
      }  

user.jsp
create a user welcome page.
 <%@page import="com.opensymphony.xwork2.ActionContext"%>  
 <%@page import="in.blog.webideaworld.LoginAction"%>  
 <%@page import="java.util.Map" %>  
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1" session="false"%>  
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Valid page</title>  
 </head>  
 <body>  
 <h4 align=right><a href=logout.action>Logout</a></h4>  
    <h5><a href=profile.action>Profile</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
     <center>  
     <%   
 Map m=ActionContext.getContext().getSession();  
 String s1=(String)m.get("uname");  
 String s2=(String)m.get("upass");  
 if(s1==null && s2==null){  
   response.sendRedirect("notvalid.jsp");  
   }  
 %>   
 --------Welcome to WebIdeaWorld---------<br/>  
 Hello: <%=s1 %>  
 </center>  
 </body>  
 </html>  

notvalid.jsp
create a page for Person not Authorized.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Not Valid User</title>  
 </head>  
 <body>  
 <h4 align=right><a href=login>Login</a></h4>  
     <h5 align=right><a href=login.jsp>Home</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
     <center>  
 You are not Authorized Person to this Website.</center>  
 </body>  
 </html>  

Profiledirect.java
create a setSession() method to make session object available to subsequent requests.Evey time when there is a request for session objects you need to pass it through setSession() method.
 package in.blog.webideaworld;  
 import java.util.Map;  
 import org.apache.struts2.interceptor.SessionAware;  
 import com.opensymphony.xwork2.ActionSupport;  
 public class Profiledirect extends ActionSupport implements SessionAware {  
      Map m;  
      public void setSession(Map m)  
      {  
           this.m=m;  
      }  
      public String execute() throws Exception{  
           return SUCCESS;  
      }  
 }  

profile.jsp
create a user's profile page.
 <%@page import="java.sql.*"%>  
 <%@page import="com.opensymphony.xwork2.ActionContext"%>  
 <%@page import="java.util.Map" %>  
 <%@page import="in.blog.webideaworld.dao.DBconn"%>  
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1" session="false"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Profile</title>  
 </head>  
 <body>  
 <h4 align=right><a href=logout.action>Logout</a></h4>  
     <a href=home.action>Home</a>&nbsp&nbsp  
     <a href=profile.action>Profile</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
      <%        
          Map m=ActionContext.getContext().getSession();  
     String s1=(String)m.get("uname");  
     String s2=(String)m.get("upass");  
     if(s1==null && s2==null){  
     response.sendRedirect("notvalid.jsp");  
     }  
     try{  
     Statement st=new DBconn().getSt();  
     ResultSet rs=st.executeQuery("select * from register where uname='"+s1+"' and upass='"+s2+"'");  
           while(rs.next()) {  
                %>  
          <center>  
          <form action='profile1' method='post'>  
       <h1><%=rs.getString(4)%>'s Profile</h1>  
       <table><tr><td>UserName:</td><td><%=rs.getString(2)%></td></tr>  
       <tr><td>Password:</td><td><%=rs.getString(3) %></td></tr>  
       <tr><td>First Name:</td><td><%=rs.getString(4) %></td></tr>  
       <tr><td> Last Name:</td><td><%=rs.getString(5) %></td></tr>  
       </table><br/><input type='Submit' value='update'><br></form>  
       </center>  
       <%}  
     }  
     catch(Exception e){}  
       %>  
 </body>  
 </html>  

update.jsp
create a user's profile update page.
 <%@page import="java.sql.*"%>  
 <%@page import="com.opensymphony.xwork2.ActionContext"%>  
 <%@page import="java.util.Map" %>  
 <%@page import="in.blog.webideaworld.dao.DBconn"%>  
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1" session="false"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Update Profile</title>  
 </head>  
 <body>  
 <h4 align=right><a href=logout.action>Logout</a></h4>  
     <a href=profile.action>Profile</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
     <%      
     Map m=ActionContext.getContext().getSession();  
      String s1=(String)m.get("uname");  
      String s2=(String)m.get("upass");  
      if(s1==null && s2==null){  
        response.sendRedirect("notvalid.jsp");  
        }  
     try  
     {  
       Statement st=new DBconn().getSt();  
       ResultSet rs=st.executeQuery("select * from register where uname='"+s1+"' and upass='"+s2+"'");  
       while(rs.next())  
       {out.println("<center><h1>"+rs.getString(4)+"'s Profile</h1></center>");%>  
     <center>  
     <form action="update" method="post">  
       <h1>Update your Profile</h1>  
       <table><tr><td>UserName:</td><td><input type="text" name="t1" value="<%=rs.getString(2)%>" ></td></tr>  
       <tr><td>Password:</td><td><input type="text" name="t2" value="<%=rs.getString(3)%>" ></td></tr>  
       <tr><td>Re-Type Password:</td><td><input type="text" value="<%=rs.getString(3)%>"></td></tr>  
       <tr><td>First Name:</td><td><input type="text" name="t3" value="<%=rs.getString(4)%>" ></td></tr>  
       <tr><td> Last Name:</td><td><input type="text" name="t4" value="<%=rs.getString(5)%>" ></td></tr>  
       </table>  
       *all fields are mandatory!<br>  
       <input type="Submit" value="Update" ><br>  
     </form>  
     </center>  
     <%  
        }  
     }  
     catch(Exception e){}  
 %>  
 </body>  
 </html>  

UpdateProfile.java
 package in.blog.webideaworld;  
 import java.sql.Statement;  
 import java.util.Map;  
 import in.blog.webideaworld.dao.DBconn;  
 import org.apache.struts2.interceptor.SessionAware;  
 import com.opensymphony.xwork2.ActionSupport;  
 public class UpdateProfile extends ActionSupport implements SessionAware {  
      private String t1;  
      private String t2;  
      private String t3;  
      private String t4;  
      Map m;  
      public void setSession(Map m)  
      {  
           this.m=m;  
      }  
   public String getT1() {  
           return t1;  
      }  
      public void setT1(String t1) {  
           this.t1 = t1;  
      }  
      public String getT2() {  
           return t2;  
      }  
      public void setT2(String t2) {  
           this.t2 = t2;  
      }  
      public String getT3() {  
           return t3;  
      }  
      public void setT3(String t3) {  
           this.t3 = t3;  
      }  
      public String getT4() {  
           return t4;  
      }  
      public void setT4(String t4) {  
           this.t4 = t4;  
      }  
 public String execute() throws Exception{  
           try{  
               int s1=(Integer)m.get("id");  
                  Statement st=new DBconn().getSt();  
            int i=st.executeUpdate("update register set uname='"+t1+"',upass='"+t2+"',fname='"+t3+"',lname='"+t4+"'"  
                               +"where id="+s1+"");  
            if(i!=0)  
            {  
                 m.put("uname", t1);  
                 m.put("upass", t2);  
                 return SUCCESS;  
            }  
           }  
           catch (Exception e) {}  
          return ERROR;  
      }  
 }  

success.jsp
create a user's profile successfully updated page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Success</title>  
 </head>  
 <body>  
 <h4 align=right><a href=logout.action>Logout</a></h4>  
     <a href=profile.action>Profile</a>&nbsp&nbsp  
     <a href=#>FeedBack</a>&nbsp&nbsp  
     <a href=#>Contact Us</a></h5><hr>  
     <center>  
 Your Profile's record(s) updated successfully.</center>  
 </body>  
 </html>  

Logout.java
 package in.blog.webideaworld;  
 import java.util.Map;  
 import com.opensymphony.xwork2.ActionContext;  
 import com.opensymphony.xwork2.ActionSupport;  
 public class Logout extends ActionSupport{  
      public String logout() throws Exception{  
           Map session=ActionContext.getContext().getSession();  
           session.remove("id");  
           session.remove("uname");  
           session.remove("upass");  
           return SUCCESS;  
      }  
 }  

Download Code

View in Browser: 

Login Screen


Welcome Page


User's Profile


User's Profile Update Page

 
User's Profile After Update

Saturday, May 4, 2013

AJAX validation using Struts2 Framework and XML file with Eclipse Indigo

In this tutorial we are performing Server Side Validation using AJAX validation which will lead to the page to show validation errors without reloading the page.
To perform AJAX Validation we need to use  Struts2-dojo-plugin jar in our project.

so firstly download all Required Jars Without dojo-plugin

Download only Struts2-dojo-plugin-2.3.8.jar if you have already downloaded other jars from previous tutorials
or you can also download source code which is available in the end of this tutorial that contains all jars(with dojo-plugin) including source code



Project Structure in Project Explorer:
reg_form.jsp
create a user input page. 
To work with AJAX, <sx:head> must be in the page. Don't use validate="true" in the form tag because it invokes client side validation(Javascript) before Server Side Validation(AJAX validation) but use validate="true" in the submit tag to perform AJAX validation.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
      pageEncoding="ISO-8859-1"%>  
      <%@ taglib prefix="s" uri="/struts-tags"%>  
      <%@ taglib prefix="sx" uri="/struts-dojo-tags" %>  
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Ajax-Registration-form</title>  
 <sx:head />  
 </head>  
 <body bgcolor="skyblue">  
      <h1>Ajax Registration Form</h1>  
      <hr>  
                  <s:form action="register.action" method="post" >  
            <s:textfield name="Name" label="Name" size="20" />  
            <s:radio name="Gender" label="Gender" list="{'Male', 'Female'}" />  
            <s:select name="Course" label="Course" list="{'Select-Option','B.Tech', 'MCA', 'MSC'}" />  
            <sx:submit align="center" validate="true" />  
         </s:form>  
 </body>  
 </html>  

success.jsp
create a user's success page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
   <%@ taglib prefix="s" uri="/struts-tags"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>success</title>  
 </head>  
 <body bgcolor="lightblue">  
 <center><h3>  
 Hello! <s:property value="name"/></h3></center>  
 </body>  
 </html>  

ContactAction.java
create a Action java class.
 package in.blog.webideaworld;  
 import com.opensymphony.xwork2.ActionSupport;  
 @SuppressWarnings("serial")  
 public class ContactAction extends ActionSupport {  
      private String name;  
      private String gender;  
      private String course;  
      public String getName() {  
           return name;  
      }  
      public void setName(String name) {  
           this.name = name;  
      }  
      public String getGender() {  
           return gender;  
      }  
      public void setGender(String gender) {  
           this.gender = gender;  
      }  
      public String getCourse() {  
           return course;  
      }  
      public void setCourse(String course) {  
           this.course = course;  
      }  
      public String execute() throws Exception{  
           return SUCCESS;  
      }  
 }  

ContactAction-validation.xml
Create validators in XML file and the format for the validatiors xml file is <ActionClassName>-validation.xml
 <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"  
           "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">  
 <validators>  
      <field name="Name">  
           <field-validator type="requiredstring">  
                <message>Name is Required.</message>  
           </field-validator>  
           <field-validator type="regex">  
       <param name="expression">[a-zA-Z]{2,20}</param>  
       <message>Please enter valid name.</message>  
     </field-validator>  
      </field>  
      <field name="Gender">  
           <field-validator type="requiredstring">  
                <message>Gender is Required.</message>  
           </field-validator>  
      </field>  
      <field name="Course">  
           <field-validator type="regex">  
       <param name="expression">B.Tech|MCA|MSC</param>  
       <message>Course is required.</message>  
     </field-validator>  
      </field>  
 </validators>  

struts.xml
set result name="success" for success.jsp and name="input" for reg_form.jsp for validation messages to show up on input page.
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE struts PUBLIC  
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   "http://struts.apache.org/dtds/struts-2.0.dtd">  
   <struts>   
   <package name="default" namespace="/" extends="struts-default">  
     <action name="register" class="in.blog.webideaworld.ContactAction" method="execute" >  
     <result name="success">success.jsp</result>  
     <result name="input">reg_form.jsp</result>  
     </action>  
   </package>  
   </struts>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>Struts2_Ajax_Validate</display-name>  
  <welcome-file-list>  
     <welcome-file>reg_form.jsp</welcome-file>  
  </welcome-file-list>  
  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>  
      org.apache.struts2.dispatcher.FilterDispatcher  
    </filter-class>  
   </filter>  
   <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
   </filter-mapping>  
 </web-app>  

Download Code

View in Browser: 


Registration form:

checking validation without input values:


success page:

Sunday, April 28, 2013

Client side validation on Radio button,Checkbox and Dropdownlist using JavaScript with JSP

In this Tutorial we are performing client side validation using JavaScript with JSP page. and In this post you can learn that how to perform client side validation on Radio buttons,Check-boxes  and on Select tag(Dorpdownlist).

Project Structure in Project Explorer:
 Also read for details of How to create first JSP project



stuform.jsp
create a user input page.
Make sure for script tag for check.js
<script type="text/javascript" src="check.js"></script>
between <head></head> tag
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Register</title>  
 <script type="text/javascript" src="check.js"></script>  
 </head>  
 <body bgcolor="gray">  
 <center >  
 <h1> Registration</h1>  
 <form action="success.jsp" method="post" name="myform">  
 <table bgcolor="lightblue">  
 <tr>  
 <td>Name:</td>  
 <td><input type="text" name="name" id="user"/></td>  
 <td><label id="label1"></label></td>  
 </tr>  
 <tr>  
 <td>Country</td>  
 <td><select id="country" name="country">  
       <option value="" selected>select option</option>  
       <option value="India">INDIA</option>  
       <option value="USA">USA</option>  
       <option value="China">CHINA</option>  
 </select>  
 </td>  
 <td><label id="label2"></label></td>  
 </tr>  
 <tr>  
 <td>Gender</td>  
 <td ><input type="radio" name="gender" value="m" />Male  
   <input type="radio" name="gender" value="f" />Female  
 </td>  
 <td><label id="label3"></label></td>  
 </tr>  
 <tr>  
 <td>Fruit</td>  
 <td><input type="checkbox" name="fruit" value="orange" />Orange  
   <input type="checkbox" name="fruit" value="banana" />Banana  
   <input type="checkbox" name="fruit" value="apple" />Apple  
 </td>  
 <td><label id="label4"></label></td>  
 </tr>  
 <tr>  
 <td><input type="submit" value="Submit" onclick="return validate();"></td>  
 </tr></table>  
 </form>  
 </center></body>  
 </html>  


check.js
write javascript on check.js for validate stuform.jsp and we are performing validation on submit button click.
 f1=1,f2=1,f3=1,f4=1;  
 function validate()  
 {  
   var user=document.getElementById("user").value;  
   var element=document.getElementById("label1");  
    if(user=="")  
     {  
     element.innerHTML="Username Required!";  
     element.style.color="red";  
     f1=1;  
    }  
    else  
     {  
       if(user.search(/^([A-Za-z]){4,15}$/)==-1)  
       {  element.innerHTML="Not a valid User Name.It must be 4-15 characters long";  
         element.style.color="red";  
         f1=1;  
        }  
     else {  
       element.innerHTML="Correct";  
       element.style.color="green";  
        f1=0;  
       }  
     }  
      var con=document.getElementById("country").value;  
      var element=document.getElementById("label2");  
      if(con=="")  
        {  
        element.innerHTML="Country Required!";  
        element.style.color="red";  
        f2=1;  
       }  
       else  
        { element.innerHTML="Correct";  
          element.style.color="green";  
          f2=0;  
        }  
      var gender = document.myform.gender;  
      var element=document.getElementById("label3");  
   for (var i=0; i<gender.length; i++)  
   {  
    if (gender[i].checked)  
         {  
         element.innerHTML="Correct";  
      element.style.color="green";  
         f3=0;  
      break;  
      }  
    else  
         {  
         element.innerHTML="Gender Required!";  
          element.style.color="red";  
         }  
    }  
   var fruit = document.myform.fruit;  
      var element=document.getElementById("label4");  
   for (var i=0; i<fruit.length; i++)  
   {  
    if (fruit[i].checked)  
         {  
         element.innerHTML="Correct";  
      element.style.color="green";  
         f4=0;  
      break;  
      }  
    else  
         {  
         element.innerHTML="Fruit(s) Required!";  
         element.style.color="red";  
          f4=1;  
         }  
    }  
   if(f1==1||f2==1||f3==1||f4==1)  
     {  
       alert("Complete TextBox Conditions!!");  
       return false;  
     }  
     else  
       {  
         return true;  
       }  
 }  

success.jsp
create a user's success page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>success</title>  
 </head>  
 <body bgcolor="lightblue">  
 <center><h3>  
 Successfully Registered. </h3></center>  
 </body>  
 </html>  

Download Code

View in Browser: 
checking validation:
 success page: 

Saturday, April 27, 2013

Basic form Validation using Struts2 Framework with validate() method and ActionSupport class

In this Tutorial we are performing server side validation using Struts2 framework with validate() method and for using this method our java class must extend ActionSuppot class.

Project Structure in Project Explorer:
Download Struts2 Jars

Struts2 jars setting, for More Details Read How to set Struts2 Environment

register.jsp
create a user input page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
      pageEncoding="ISO-8859-1"%>  
      <%@ taglib prefix="s" uri="/struts-tags"%>  
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Register</title>  
 </head>  
 <body bgcolor="brown">  
      <h1>Registration</h1>  
      <hr>  
            <s:form action="register.action" method="post" >  
            <s:textfield name="name" label="Name" size="20" />  
            <s:textfield name="age" label="Age" size="20" />  
            <s:textfield name="course" label="Course" size="20" />  
            <s:submit label="Register" align="center" />  
         </s:form>  
 </body>  
 </html>  

success.jsp
create a user's success page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
   <%@ taglib prefix="s" uri="/struts-tags"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>success</title>  
 </head>  
 <body bgcolor="lightblue">  
 <center><h3>  
 Hello! <s:property value="name"/></h3></center>  
 </body>  
 </html>  

ContactAction.java
create a Action java class. Make sure that this java class must extend ActionSupport class else you'll not be able to use validate() method.
 package in.blog.webideaworld;  
 import com.opensymphony.xwork2.ActionSupport;  
 @SuppressWarnings("serial")  
 public class ContactAction extends ActionSupport {  
      private String name;  
      private int age;  
      private String course;  
      public String getName() {  
           return name;  
      }  
      public void setName(String name) {  
           this.name = name;  
      }  
      public int getAge() {  
           return age;  
      }  
      public void setAge(int age) {  
           this.age = age;  
      }  
      public String getCourse() {  
           return course;  
      }  
      public void setCourse(String course) {  
           this.course = course;  
      }  
      public String execute() throws Exception{  
           return SUCCESS;  
      }  
      public void validate(){  
           if ( getName().length() == 0 )       
                addFieldError( "name", "Name is required." );  
           if ( getAge() < 18 || getAge() >50 )  
                addFieldError( "age", "Age is required and must be between 18 and 50" );  
           if ( getCourse().length() == 0 )  
                addFieldError( "course", "Course is required." );  
      }  
 }  

struts.xml
set result name="success" for success.jsp and name="input" for register.jsp for validation messages to show up on input page.
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE struts PUBLIC  
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   "http://struts.apache.org/dtds/struts-2.0.dtd">  
   <struts>   
   <package name="default" namespace="/" extends="struts-default">  
     <action name="register" class="in.blog.webideaworld.ContactAction" method="execute" >  
     <result name="success">success.jsp</result>  
     <result name="input">register.jsp</result>  
     </action>  
   </package>  
   </struts>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>Struts2_form_validate</display-name>  
  <welcome-file-list>  
   <welcome-file>register.jsp</welcome-file>  
   </welcome-file-list>  
  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>  
      org.apache.struts2.dispatcher.FilterDispatcher  
    </filter-class>  
   </filter>  
   <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
   </filter-mapping>  
 </web-app>  

Download Code

View in Browser: 
checking validation:

success page: 

Thursday, April 25, 2013

Validation using Struts2 Framework on Radio button and DropDownList with Eclipse

In this Tutorial we are performing server side validation using Struts2 framework on various fields eg. name,radio button and dropdownlist.

Project Structure in Project Explorer:

Download Struts2 Jars

Struts2 jars setting, for More Details Read How to set Struts2 Environment
Project properties

Web Deployment Assembly


fillform.jsp

create a user input page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
      pageEncoding="ISO-8859-1"%>  
      <%@ taglib prefix="s" uri="/struts-tags"%>  
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Register</title>  
 </head>  
 <body bgcolor="brown">  
      <h1>Registration</h1>  
      <hr>  
            <s:form action="register.action" method="post" >  
            <s:textfield name="Name" label="Name" size="20" />  
            <s:radio name="Gender" label="Gender" list="{'Male', 'Female'}" />  
            <s:select name="Course" label="Course" list="{'Select-Option','B.Tech', 'MCA', 'MSC'}" />  
            <s:submit label="Register" align="center" />  
         </s:form>  
 </body>  
 </html>  

success.jsp
create a user's success page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
   <%@ taglib prefix="s" uri="/struts-tags"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>success</title>  
 </head>  
 <body bgcolor="lightblue">  
 <center><h3>  
 Hello! <s:property value="name"/></h3></center>  
 </body>  
 </html>  

ContactAction.java
create a Action java class.
 package in.blog.webideaworld;  
 import com.opensymphony.xwork2.ActionSupport;  
 @SuppressWarnings("serial")  
 public class ContactAction extends ActionSupport {  
      private String name;  
      private String gender;  
      private String course;  
      public String getName() {  
           return name;  
      }  
      public void setName(String name) {  
           this.name = name;  
      }  
      public String getGender() {  
           return gender;  
      }  
      public void setGender(String gender) {  
           this.gender = gender;  
      }  
      public String getCourse() {  
           return course;  
      }  
      public void setCourse(String course) {  
           this.course = course;  
      }  
      public String execute() throws Exception{  
           return SUCCESS;  
      }  
 }  

ContactAction-validation.xml
Create validators in XML file and the format for the validatiors xml file is <ActionClassName>-validation.xml
 <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"  
           "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">  
 <validators>  
      <field name="Name">  
           <field-validator type="requiredstring">  
                <message>Name is Required.</message>  
           </field-validator>  
           <field-validator type="regex">  
       <param name="expression">[a-zA-Z]{2,20}</param>  
       <message>Please enter valid name.</message>  
     </field-validator>  
      </field>  
      <field name="Gender">  
           <field-validator type="requiredstring">  
                <message>Gender is Required.</message>  
           </field-validator>  
      </field>  
      <field name="Course">  
           <field-validator type="regex">  
       <param name="expression">B.Tech|MCA|MSC</param>  
       <message>Course is required.</message>  
     </field-validator>  
      </field>  
 </validators>  

struts.xml
set result name="success" for success.jsp and name="input" for fillform.jsp for validation messages to show up on input page.
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE struts PUBLIC  
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   "http://struts.apache.org/dtds/struts-2.0.dtd">  
   <struts>   
   <package name="default" namespace="/" extends="struts-default">  
     <action name="register" class="in.blog.webideaworld.ContactAction" method="execute" >  
     <result name="success">success.jsp</result>  
     <result name="input">fillform.jsp</result>  
     </action>  
   </package>  
   </struts>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>Struts2Validate_form</display-name>  
  <welcome-file-list>  
   <welcome-file>fillform.jsp</welcome-file>  
   </welcome-file-list>  
  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>  
      org.apache.struts2.dispatcher.FilterDispatcher  
    </filter-class>  
   </filter>  
   <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
   </filter-mapping>  
 </web-app>  

Download Code

View in Browser: 
checking validation:

success page: 

Wednesday, April 24, 2013

Validation using Struts2 Framework and XML file with Eclipse Indigo

In this Tutorial we are performing server side validation using Struts2 framework on various fields eg. name,email etc.



Project Structure in Project Explorer:


Firstly Download Struts2 Jars

How to Use Struts2 Jars by two ways:
1. Put all downloaded jars into lib folder of your project.


2. The way i am using Jars, For More Details Read How to set Struts2 Environment
Web Deployment Assembly

contactus.jsp
create a user input page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
      pageEncoding="ISO-8859-1"%>  
      <%@ taglib prefix="s" uri="/struts-tags"%>  
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Contact Us</title>  
 </head>  
 <body bgcolor="brown">  
      <h1>Contact Information</h1>  
      <hr>  
            <s:form action="customer.action" method="post" >  
            <s:textfield name="Name" key="label.name" size="40" />  
            <s:textfield name="Age" key="label.age" size="40" />  
            <s:textfield name="Email" key="label.email" size="40" />  
             <s:textarea name="Message" key="label.msg" rows="10" cols="40" ></s:textarea>  
            <s:submit key="label.customer" align="center" />  
         </s:form>  
 </body>  
 </html>  

success.jsp
create a user's success page.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
   <%@ taglib prefix="s" uri="/struts-tags"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>success</title>  
 </head>  
 <body bgcolor="lightblue">  
 <center><h3>  
 Hello! <s:property value="name"/></h3></center>  
 </body>  
 </html>  

ContactAction.java
create a Action java class.
 package in.blog.webideaworld;  
 import com.opensymphony.xwork2.ActionSupport;  
 @SuppressWarnings("serial")  
 public class ContactAction extends ActionSupport {  
      private String name;  
      private int age;  
      private String email;  
      private String message;  
      public String getName() {  
           return name;  
      }  
      public void setName(String name) {  
           this.name = name;  
      }  
      public int getAge() {  
           return age;  
      }  
      public void setAge(int age) {  
           this.age = age;  
      }  
      public String getEmail() {  
           return email;  
      }  
      public void setEmail(String email) {  
           this.email = email;  
      }  
      public String getMessage() {  
           return message;  
      }  
      public void setMessage(String message) {  
           this.message = message;  
      }  
      public String execute() throws Exception{  
           return SUCCESS;  
      }  
 }  

ContactAction-validation.xml
Create validators in XML file and the format for the validatiors xml file is <ActionClassName>-validation.xml
 <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"  
           "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">  
 <validators>  
      <field name="Name">  
           <field-validator type="requiredstring">  
                <message key="errors.required" />  
           </field-validator>  
           <field-validator type="regex">  
       <param name="expression">[a-zA-Z]{2,20}</param>  
       <message key="errors.invalid" />  
     </field-validator>  
      </field>  
      <field name="Age">  
    <field-validator type="required">  
      <message key="errors.required" />  
    </field-validator>  
    <field-validator type="int">  
      <param name="min">18</param>  
      <param name="max">100</param>  
      <message key="errors.agerange" />  
    </field-validator>  
  </field>  
      <field name="Email">  
           <field-validator type="requiredstring">  
                <message key="errors.required" />  
           </field-validator>  
           <field-validator type="email">  
                <message key="errors.invalid" />  
           </field-validator>  
      </field>  
      <field name="Message">  
           <field-validator type="requiredstring">  
                <message key="errors.required" />  
           </field-validator>  
        <field-validator type="stringlength">  
       <param name="minLength">4</param>  
       <param name="maxLength">200</param>  
       <message key="errors.msgrange"/>  
   </field-validator>  
      </field>  
 </validators>  

ApplicationResources.properties
 label.name=Name  
 label.age=Age  
 label.email=Email  
 label.msg=Message  
 label.customer=Send  
 errors.invalid=${getText(fieldName)} is invalid.  
 errors.required=${getText(fieldName)} is required.  
 errors.agerange=Age must be between ${min} and ${max}, current value is ${Age}.  
 errors.msgrange=Message length must be between ${minLength} to ${maxLength} characters.  

struts.xml
set result name="success" for success.jsp and name="input" for contactus.jsp for validation messages to show up on input page.
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE struts PUBLIC  
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   "http://struts.apache.org/dtds/struts-2.0.dtd">  
   <struts>  
        <constant name="struts.custom.i18n.resources" value="ApplicationResources" />   
   <package name="default" namespace="/" extends="struts-default">  
     <action name="customer" class="in.blog.webideaworld.ContactAction" method="execute" >  
     <result name="success">success.jsp</result>  
     <result name="input">contactus.jsp</result>  
     </action>  
   </package>  
   </struts>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>StrutsValidate</display-name>  
  <welcome-file-list>  
   <welcome-file>contactus.jsp</welcome-file>  
   </welcome-file-list>  
  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>  
      org.apache.struts2.dispatcher.FilterDispatcher  
    </filter-class>  
   </filter>  
   <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
   </filter-mapping>  
 </web-app>  

Download Code

View in Browser: 
checking validation without input values:
checking validation with input values:
success page:


Popular Posts