**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> <constant name= struts.enable.DynamicMethodInvocation value= false /> <constant name= struts.devMode value= false /> <constant name= struts.convention.result.path value= /pages /> <constant name= struts.convention.action.packages value= com.icici.recon /> <constant name= struts.custom.i18n.resources value= global /> <package name= default extends= struts-default, json-default namespace= / > <action name= index class= com.credentek.recon.sms.action.IndexAction > <result>/pages/index.jsp</result> </action> <action name= indexLogin class= com.credentek.recon.sms.action.IndexAction method= login > <result>/pages/sms/login.jsp</result> </action> <action name= login class= com.credentek.recon.sms.action.LoginAction > <result >/pages/sms/login.jsp</result> </action> <action name= showmenu class= com.credentek.recon.sms.action.LoginAction method= showmenu > <result name= success >pages/menu/menu.jsp</result> <result name= error >pages/menu/blank1.jsp</result> </action> </package> </struts> **LoginAction.java** package com.credentek.recon.sms.action; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.SessionAware; import com.credentek.recon.sms.dao.LoginDAO; import com.credentek.recon.sms.dao.LoginDAOImpl; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport implements SessionAware { private static final long serialVersionUID = -8841529855335717596L; private final Logger log = Logger.getLogger(LoginAction.class); private Map<String, Object> session; private String userID; private String welcomeDetails; private String loginDetails; private boolean implementationStatus; private String subSystem; private LoginDAOImpl loginDAO = new LoginDAOImpl(); public String execute() { log.info( Loading login page... ); log.info( Login page loaded successfully. ); return SUCCESS; } public String showmenu() { log.info( showmenu ); System.out.println( show menu.... ); if(userID.equalsIgnoreCase( ) || userID == null){ System.out.println( no user ID..... ); return ERROR; } System.out.println( USER ID..... ); HttpServletRequest request = (HttpServletRequest) ActionContext .getContext().get(ServletActionContext.HTTP_REQUEST); log.info( Validating login information... ); String dateFormat = loginDAO.getDateFormat(); if(! .equals(dateFormat)) { session.put( dateFormat , dateFormat); log.info( Date Format set to + dateFormat); } else { session.put( dateFormat , dd/MM/yyyy ); log.error( Date Format is not set properly, please set dateFormat parameter in Parameter table ); } SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String businessDate = sdf.format(new Date()); session.put( userID , userID); session.put( userName , userID); session.put( businessDate , 30/04/2012 ); session.put( subSystem , subSystem); String moduleID = loginDAO.getModuleDetails(subSystem); log.info( moduleID is set to + moduleID ); session.put( moduleID , moduleID); session.put( lastLoginDate , ); session.put( lastBusinessDate , ); session.put( currencyFormat , ); dateFormat = dateFormat.replace( yy , y ); dateFormat = dateFormat.replace( E , D ); dateFormat = dateFormat.replace( DD , D ); if(StringUtils.countMatches(dateFormat, MMMM ) == 1) dateFormat = dateFormat.replace( MMMM , MM ); else if(StringUtils.countMatches(dateFormat, MMM ) == 1) dateFormat = dateFormat.replace( MMM , M ); else if(StringUtils.countMatches(dateFormat, MM ) == 1) dateFormat = dateFormat.replace( MM , mm ); else if(StringUtils.countMatches(dateFormat, M ) == 1) dateFormat = dateFormat.replace( M , m ); session.put( datePickerFormat , dateFormat); log.info( DatePicker format set to + dateFormat); log.info( Login successfull. Login Information = + session); welcomeDetails = Welcome + userID; sdf = new SimpleDateFormat( dd MMMM, yyyy HH:mm:ss z ); loginDetails = Current Login : + sdf.format(new Date()); log.info( Login Details: User- + userID + , + loginDetails); implementationStatus = true; request.getSession().setMaxInactiveInterval(60 * 60); return SUCCESS; } public void setSession(Map<String, Object> session) { this.session = session; } public String getUserID() { return userID; } public void setUserID(String userID) { this.userID = userID; } public String getWelcomeDetails() { return welcomeDetails; } public void setWelcomeDetails(String welcomeDetails) { this.welcomeDetails = welcomeDetails; } public String getLoginDetails() { return loginDetails; } public void setLoginDetails(String loginDetails) { this.loginDetails = loginDetails; } public boolean isImplementationStatus() { return implementationStatus; } public void setImplementationStatus(boolean implementationStatus) { this.implementationStatus = implementationStatus; } public String getSubSystem() { return subSystem; } public void setSubSystem(String subSystem) { this.subSystem = subSystem; } } **index.jsp** <%@ page language= java contentType= text/html; charset=ISO-8859-1 pageEncoding= ISO-8859-1 %> <%@ taglib prefix= s uri= /struts-tags %> <%@ taglib prefix= sj uri= /struts-jquery-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=utf-8 /> <meta http-equiv= Content-Style-Type content= text/css /> <meta http-equiv= pragma content= no-cache /> <meta http-equiv= cache-control content= no-cache /> <meta http-equiv= expires content= 0 /> <meta http-equiv= keywords content= struts2, jquery, jquery-ui, plugin, showcase, jqgrid /> <meta http-equiv= description content= Debit Card Reconciliation System /> <link href= styles/layout.css rel= stylesheet type= text/css /> <link rel= stylesheet href= styles/styles.css type= text/css /> <!--[if lte IE 7]> <link href= styles/patch_layout.css rel= stylesheet type= text/css /> <![endif]--> <!-- This files are needed for AJAX Validation of XHTML Forms --> <script type= text/javascript src= ${pageContext.request.contextPath}/struts/utils.js ></script> <script type= text/javascript src= ${pageContext.request.contextPath}/struts/xhtml/validation.js ></script> <script type= text/javascript src= js/jquery.js ></script> <sj:head debug= true compressed= false jquerytheme= humanity loadFromGoogle= false ajaxhistory= false defaultIndicator= myDefaultIndicator defaultLoadingText= Please wait ... /> <!-- This file includes necessary functions/topics for validation and all topic examples --> <script type= text/javascript src= js/showcase.js ></script> <script type= text/javascript src= js/common.js ></script> <script type= text/javascript src= js/right.js ></script> <script type= text/javascript src= js/date.js ></script> <script type= text/javascript src= js/ui/jquery.ui.datepicker.js ></script> <script type= text/javascript src= js/jquery.tablesorter.js ></script> <script type= text/javascript src= js/jquery.tablesorter.pager.js ></script> <script type= text/javascript src= js/jquery.tablesorter.filter.js ></script> <script type= text/javascript src= js/ui/jquery.ui.core.js ></script> <script type= text/javascript src= js/ui/jquery.ui.widget.js ></script> <script type= text/javascript src= js/ui/jquery.ui.mouse.js ></script> </head> <body> <div class= page_margins > <div class= page > <table width= 100% border= 0 class= ui-widget-header > <tr> <td width= 40% ><div id= headline > <h1 class= ui-state-default style= background: none; border: none; >Login Attempt </h1> <h4 class= ui-state-default style= background: none; border: none; >Login <i><small>Login</small></i></h4> <img id= myDefaultIndicator src= images/ajax-loader.gif alt= Loading... style= display:none /> </div></td> <td width= 30% ><div id= subSystemInfo class= ui-state-default style= background: none; border: none;font-size: 20px; ></div> </td> <td width= 30% > <div > <div style= float: right; > <s:form id= themeform action= setlocale theme= simple > <div id= languageBox > <span> </span> <span> </span> </div> <sj:submit id= submitForm formIds= themeform listenTopics= formTopic cssStyle= display: none; /> </s:form> <div class= ui-state-default style= background: none; border: none; padding-top: 3px; padding-bottom: 3px; float: right; ><span id= userInfo ></span><span><a id= logout href= index.action ></a></span></div><br> <div id= loginInfo class= ui-state-default style= background: none; border: none;float: right; ></div> </div> </div> </td> </tr> </table> <div id= menu ></div> <s:url id= urlLogin action= login /> <sj:div id= main href= %{urlLogin} cssStyle= height:320px > <img id= indicator src= images/indicator.gif alt= Loading... /> </sj:div> <!-- begin: #footer --> <div id= footer > Copyright © 2012, CredenTek Software & Consultancy Private Limited. <a href= http://www.credentek.com/ target= _blank >www.credentek.com</a> </div> </div> </div> <div class= curtain id= loading-filter style= display:none; height: 850px; > <div style= margin-top: 200px; text-align: center; > <img src= images/loading.gif width= 110 height= 90 alt= loading ... /> </div> </div> </body> </html> **login.jsp** <%@ taglib prefix= s uri= /struts-tags %> <%@ taglib prefix= sj uri= /struts-jquery-tags %> <div id= col3 align= center style= width: 100%; > <div id= col3_content align= center class= clearfix style= width: 90%; > <s:url id= urlShowMenu action= showmenu /> <%-- <sj:a id= loginLink >Login</sj:a> --%> <table cellpadding= 0 cellspacing= 7 border= 0 width= 100% > <tr valign= top > <td width= 35% ><img src= images/icicibank.jpg width= 250px ></td> <td><br></br><br></br><br></br></td> <td width= 35% align= right > </td> </tr> <tr> <td> </td> <td> <h4 class= ui-state-default style= background: none; border: none; >Login</h4> </td> <td> </td> </tr> <tr> <td></td> <td> <hr></hr> </td> <td></td> </tr> <tr> <td></td> <td> <s:form id= loginForm theme= simple > <table cellpadding= 0 cellspacing= 15 border= 3 width= 100% > <tr style= border:0px; > <td width= 50% style= border:0px; align= left >User Name </td> <td width= 50% style= border:0px; > <s:textfield id= userID cssClass= searchInputText name= userID ></s:textfield> </td> </tr> <tr style= border:0px; > <td style= border:0px; align= left >Password </td> <td style= border:0px; ><s:password id= password cssClass= searchInputText /></td> </tr> <tr style= border:0px; > <td style= border:0px; align= left >Sub-System</td> <td style= border:0px; ><s:select name= subSystem list= { Nostro , CMS } cssStyle= width:132px cssClass= searchInputText /></td> </tr> <tr align= right style= border:0px; > <td align= right colspan= 2 style= border:0px; > <sj:submit id= loginBtn name= Logn href= %{urlShowMenu} targets= menu button= true ></sj:submit> </td> </tr> </table> </s:form> </td> <td></td> </tr> </table> </div> <!-- IE Column Clearing --> <div id= ie_clearing > </div> </div> <script type= text/javascript > $(document).ready(function() { $( #bankName ).focus(); $( #loginBtn ).click(function() { $( #main ).empty(); }); }); </script>
Please visit the following links:
http://www.roseindia.net/struts/struts/struts2.2.1/tags/LonginValidation.html
http://www.roseindia.net/struts/struts2/struts2validation.shtml
Ads