I have used the Timeout-Dialog.js jQuery plugin, and it's working fine alone.
But its not working after being integrated with Struts2.
This is the page which will get invoked upon successful login.
<script src="../js/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
<script src="../js/highlight.js" type="text/javascript" ></script>
<script src="../js/ui.timeoutdialog.js" type="text/javascript" ></script>
<link href="../css/jquery.ui.css" type="text/css" rel="stylesheet" />
<link href="../css/app.css" type="text/css" rel="stylesheet" />
<script language="javascript" type="text/javascript">
$(function(){
$("#timeoutDialog").timeoutdialog({
idleTimeout: 5,
idleAlert: 1,
keepAliveURL: "ajax.html",
validResponseText: 'OK',
countdownTarget: 'countdownTargetSpan',
buttonContinueText: 'OK',
buttonSignoffText: 'Sign Off',
onTimeout: function() {
alert("timeout");
window.location = "login.jsp";
},
onSignoff: function(){
alert("signoff");
window.location = "login.jsp";
}
});
});
</script>
</head>
<body>
<div id="timeoutDialog" style="display:none;height:50px;">
<p>Your session will timeout shortly.</p>
<p>
You will time out in <span id="countdownTargetSpan" style="font-weight:bold"> seconds.</span>
</p>
</div>
<div id="menu"
style="position: relative; height: 590px; width: 500px; float: left;">
<%@ include file="pushmany.jsp"%>
</div>
</body>
</html>
Struts.xml
<action name="login" class="atri.lms.login.action.LoginAction">
<result name="input">/jsp/login.jsp</result>
<result name="success">/jsp/success.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
login.jsp
<form action="login1" method="post" id="login" theme="css_xhtml">
<div id="footer"><img src="../images/alogo.png" width="150px" height="40px"></div>
<div id="container">
<div id="div"><h2><i> Login Here</i></h2></div>
<div class="div1">
<div id="header"><img src="/LinenProject/images/indus.png" width="150px" height="100px"></div>
<table id="tab">
<tr><td colspan="2" id="err"><s:property value="%{#request.error}"/></td></tr>
<tr><td class="td1">User Name:</td><td class="td1" width="40px"><input type="text" id="username" name="username" class="in" value='<s:property value="username"/>'/></td></tr>
<tr><td></td><td><label class="error"></label></td></tr>
<tr><td class="td1">Password:</td><td class="td1"><input type="password" id="password" name="password" class="in"/></td></tr>
<tr><td></td><td><label class="error"></label></td></tr>
</table>
<div id="div2"><input type="submit" value="Login" id="submit"/></div>
</div>
</div>
</form>
Action class is as follows
if(loginVo==null){
System.out.println("loginvo is null");
//addFieldError("username", "Username or Password is wrong");
request.setAttribute("error", "Username or Password is wrong");
return INPUT;
}
else if((loginVo.getLoginid().equals(user.getUsername()) && (loginVo.getPassword().equals(user.getPassword()))))
{
System.out.println("Inside elseif............");
sessionMap.put("name",user.getUsername());
System.out.println("sessionsssssssssssss"+sessionMap.get("name"));
return SUCCESS;
}
else
{
System.out.println("else block");
//addFieldError("username", "Username or Password is Incorrect");
request.setAttribute("error", "Username or Password is Incorrect");
return INPUT;
}
The problem is the timeoutdialog()
is not working properly and while loading the action class, onSignoff
method get invoked, I don't understand the reason for this.