2

我使用了Timeout-Dialog.js jQuery 插件,它单独运行良好。

但是在与 Struts2 集成后它就不起作用了。

这是成功登录后将被调用的页面。

<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>

登录.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>

动作类如下

 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;

            }

问题是timeoutdialog()无法正常工作,在加载动作类时,onSignoff方法被调用,我不明白这是为什么。

4

0 回答 0