index.jsp
上传用户:shjgzm
上传日期:2017-08-31
资源大小:2757k
文件大小:5k
源码类别:

Ajax

开发平台:

Java

  1. <%@ page contentType="text/html; charset=UTF-8"%>
  2. <%@ page language="java"%>
  3. <%@ page import="java.sql.*,ajax.db.DBUtils,java.util.*"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  8. <title>自定义个人门户</title>
  9. <script type="text/javascript" src="js/jquery.js"></script>
  10. <script type="text/javascript" src="js/iutil.js"></script>
  11. <script type="text/javascript" src="js/idrag.js"></script>
  12. <script type="text/javascript" src="js/idrop.js"></script>
  13. <script type="text/javascript" src="js/isortables.js"></script>
  14. <style type="text/css">
  15. /* 页面字体样式 */
  16. body, input {
  17.     font-family:Arial;
  18.     font-size:12px;
  19. }
  20. /* 分栏样式 */
  21. div.column {
  22.     width:200px;
  23.     background-color:#006699;
  24.     margin:4px;
  25.     float:left;
  26.     min-height:80px;
  27. }
  28. /* 模块样式 */
  29. div.item {
  30.     margin:8px;
  31.     background:#FFF;
  32.     color:#666;
  33. }
  34. /* 模块拖拽区域样式 */
  35. div.handle {
  36.     background:#FF9933;
  37.     padding:3px;
  38.     color:#333;
  39.     font-weight:bold;
  40.     cursor:move;
  41. }
  42. /* 移动目标区域预览样式 */
  43. .helper {
  44.     border:1px dotted #ccc;
  45. }
  46. </style>
  47. <script type="text/javascript">
  48. //页面加载完毕初始化各分栏节点
  49. $(document).ready(
  50.     function () {
  51.         $('div.column').Sortable(
  52.             {
  53.                 accept:'item',              //分栏内部模块的class名称
  54.                 helperclass:'helper',       //预览移动位置的class名称
  55.                 opacity:0.8,                //移动过程中的不透明度设置
  56.                 handle:'.handle'            //移动手柄元素标识
  57.             }
  58.         );
  59.     }
  60. );
  61. //向服务器提交模块位置信息
  62. function save() {
  63.     var serial = $.SortSerialize();         //将模块信息序列化
  64.     $.ajax(
  65.         {
  66.             type:"POST",                    //发送POST请求
  67.             url:"portal.jsp",               //目标地址
  68.             data:serial.hash,               //发送的内容体
  69.             success:function() {            //成功后的回调函数
  70.                 alert("模块位置保存完毕。");
  71.             }
  72.         }
  73.     );
  74. }
  75. </script>
  76. </head>
  77. <body>
  78. <h1>自定义个人门户</h1>
  79. <div style="margin:20px">
  80.     <input type="button" onclick="save()" value="保存模块布局">
  81. </div>
  82. <%
  83.     List column1 = new ArrayList();         //用于保存分栏1的List
  84.     List column2 = new ArrayList();         //用于保存分栏2的List
  85.     List column3 = new ArrayList();         //用于保存分栏3的List
  86.     String sql = "select * from portal order by seq asc";   //定义查询数据库的SQL语句
  87.     int currentColumn = 0;
  88.     Connection conn = null;                 //声明Connection对象
  89.     PreparedStatement pstmt = null;         //声明PreparedStatement对象
  90.     ResultSet rs = null;                    //声明ResultSet对象
  91.     try {
  92.         conn = DBUtils.getConnection();     //获取数据库连接
  93.         pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  94.         rs = pstmt.executeQuery();          //执行查询,返回结果集
  95.         while (rs.next()) {                 //遍历结果集
  96.             int column = rs.getInt("col");
  97.             Map m = new HashMap();          //声明保存模块信息的Map
  98.             m.put("id", rs.getString("id"));
  99.             m.put("name", rs.getString("name"));
  100.             m.put("height", rs.getString("height"));
  101.             //根据分栏编号保存到不同List中
  102.             if (column == 1) {
  103.                 column1.add(m);
  104.             } else if (column == 2) {
  105.                 column2.add(m);
  106.             } else {
  107.                 column3.add(m);
  108.             }
  109.         }
  110.     } catch (SQLException e) {
  111.         System.out.println(e.toString());
  112.     } finally {
  113.         DBUtils.close(rs);                  //关闭结果集
  114.         DBUtils.close(pstmt);               //关闭PreparedStatement
  115.         DBUtils.close(conn);                //关闭连接
  116.     }
  117. %>
  118. <div class="column" id="column1">
  119. <%
  120.     //循环从分栏1的List中获取模块信息
  121.     for (int i=0; i<column1.size(); i++) {
  122.         Map m = (Map)column1.get(i);
  123.         %>
  124.         <div class="item" id="item<%=m.get("id")%>" style="height:<%=m.get("height")%>px"><div class="handle"><%=m.get("name")%></div></div>
  125.         <%
  126.     }
  127. %>
  128. </div>
  129. <div class="column" id="column2">
  130. <%
  131.     //循环从分栏2的List中获取模块信息
  132.     for (int i=0; i<column2.size(); i++) {
  133.         Map m = (Map)column2.get(i);
  134.         %>
  135.         <div class="item" id="item<%=m.get("id")%>" style="height:<%=m.get("height")%>px"><div class="handle"><%=m.get("name")%></div></div>
  136.         <%
  137.     }
  138. %>
  139. </div>
  140. <div class="column" id="column3">
  141. <%
  142.     //循环从分栏3的List中获取模块信息
  143.     for (int i=0; i<column3.size(); i++) {
  144.         Map m = (Map)column3.get(i);
  145.         %>
  146.         <div class="item" id="item<%=m.get("id")%>" style="height:<%=m.get("height")%>px"><div class="handle"><%=m.get("name")%></div></div>
  147.         <%
  148.     }
  149. %>
  150. </div>
  151. </body>
  152. </html>