Advertisement
henix

webflow-test.jsp

Sep 25th, 2012
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <div id="pages">
  2.  
  3. <div id="loginForm">
  4. <form name="loginForm" method="post" action="<%=ctxPath%>/api/gettoken">
  5. 用户名:<input type="text" name="u" />
  6. 密码:<input type="text" name="p" />
  7. <input type="submit" value="登录" />
  8. </form>
  9. </div>
  10.  
  11. <div id="main">
  12. <p class="login-info"></p>
  13. </div>
  14.  
  15. </div>
  16.  
  17. <script type="text/javascript" src="<%=ctxPath%>/js/flower.js/flower-0.1.js"></script>
  18. <script type="text/javascript" src="<%=ctxPath%>/js/json3/lib/json3.min.js"></script>
  19.  
  20. <script type="text/javascript" src="<%=ctxPath%>/js/flower-widgets/pages.js"></script>
  21. <script type="text/javascript">
  22. Flower.cookie.load();
  23.  
  24. var token;
  25.  
  26. // init UI
  27. var pages = new FlowerUI.Pages(document.getElementById('pages'));
  28. pages.setInitFunc(1, function(elem) {
  29.     var info = elem.children[0];
  30.     info.innerHTML = '登录成功,token = ' + token;
  31. });
  32.  
  33. function checkLogin() {
  34.     token = Flower.cookie.get('token');
  35.     if (token) {
  36.         return true;
  37.     }
  38.     return false;
  39. }
  40.  
  41. function executeDFA(dfa, start) {
  42.     var cur = start || 'start';
  43.     while (cur) {
  44.         cur = dfa[cur]();
  45.     }
  46. }
  47.  
  48. var flow = {
  49.     checkLogin: function() {
  50.         if (checkLogin()) {
  51.             return 'main';
  52.         }
  53.         return 'showLoginForm';
  54.     },
  55.     showLoginForm: function() {
  56.         pages.switchTo(0);
  57.     },
  58.     main: function() {
  59.         pages.switchTo(1);
  60.     }
  61. };
  62. flow.start = flow.checkLogin;
  63.  
  64. executeDFA(flow);
  65.  
  66. function onerror(status, respText) {
  67.     alert('Error: HTTP ' + status + '\n' + respText);
  68. }
  69.  
  70. var loginAjaxForm = new Flower.AjaxForm(document.loginForm, function(respText) {
  71.     var result = JSON.parse(respText);
  72.     if (result.token && result.token.length > 0) {
  73.         Flower.cookie.set('token', result.token, 10 * Flower.TimeUnits.MINUTES);
  74.         executeDFA(flow);
  75.     } else {
  76.         alert('未知错误,无法获取 token');
  77.     }
  78. }, onerror);
  79.  
  80. Flower.eventer.addEventListener(document.loginForm, 'submit', function(e) {
  81.     try {
  82.         Flower.assert.notEmpty(document.loginForm.u.value, '用户名不能为空');
  83.         Flower.assert.notEmpty(document.loginForm.p.value, '密码不能为空');
  84.  
  85.         loginAjaxForm.submit();
  86.     } catch (e) {
  87.         if (e instanceof Flower.AssertError) {
  88.             alert(e.message);
  89.         } else throw e;
  90.     }
  91.  
  92.     e = e || window.event;
  93.     Flower.eventer.preventDefault(e);
  94.     return false;
  95. });
  96. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement