`
qingfengxia
  • 浏览: 89351 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

javascript操作xml(增删改查)例子代码

阅读更多

javascript操作xml(增删改查)例子代码

关键字: javascript操作xml(增删改查)

自己做了一个小东西,不是很好,但是对初学来说是一个不错的例子!

包括了stu.hta (是HTML应用程序 );
stu.xml
注意下面的HTML代码必须保存为后缀名为hta 否则当对XML文件进行操作(增删改)的时候就会提示没有权限!!

文件stu.hta 代码如下:
Java代码 复制代码
  1. <html>  
  2. <head>  
  3. <title> 数据岛的显示 </title>  
  4. <style type="text/css" >  
  5. #findPanel  
  6. {  
  7.     position:absolute;  
  8.     width:220px;  
  9.     border:1px solid #666666 ;  
  10. }  
  11.   
  12. #findPanelTitle  
  13. {  
  14.     height:10px;  
  15.     background-color:#336699 ;  
  16.     cursor:move;  
  17. }  
  18.   
  19. #findPanelContent  
  20. {  
  21.     padding:5px 5px 5px 5px;  
  22.     background-color:#6699CC;  
  23. }  
  24. </style>  
  25.   
  26. </head>  
  27. <body>  
  28. <SCRIPT LANGUAGE="JavaScript" >  
  29. <!--  
  30.   
  31.     var   xmlDoc   =   new    ActiveXObject( "Msxml2.DOMDocument" );     
  32.     xmlDoc.async   =   false ;     
  33.     xmlDoc.resolveExternals   =   false ;     
  34.     xmlDoc.load("stu.xml" );  
  35.     //alert(xmlDoc.xml);   
  36.     //显示数据   
  37.     function show(){  
  38.         var vbo = document.getElementById("s" ).value;  
  39.         if (vbo== "显示学生信息" ){  
  40.            document.getElementById('info' ).style.visibility= 'visible' ;  
  41.            document.getElementById("s" ).value= "隐藏学生信息" ;  
  42.          }else {  
  43.             document.getElementById('info' ).style.visibility= 'hidden' ;  
  44.             document.getElementById("s" ).value= "显示学生信息" ;  
  45.          }  
  46.     }  
  47.     //查找   
  48.     function que(){  
  49.        document.getElementById("ad" ).style.visibility= "visible" ;  
  50.        document.getElementById("qmd" ).style.visibility= "visible" ;  
  51.      }  
  52.   
  53.      /**  
  54.       * 解析XML文件函数  
  55.       * @param xmlDoc XML对象  
  56.       * @param name 属性名称 格式如:user.name  
  57.       */   
  58.     function getXMLProperty(xmlDoc, name) {  
  59.      var keys = name.split('.' );  
  60.      var node = xmlDoc.documentElement;  
  61.      for (var i= 0 ; i<keys.length; i++) {  
  62.       var childs = node.childNodes;  
  63.       var key = keys[i];  
  64.       for (var k= 0 ; k<childs.length; k++) {  
  65.         var child = childs[k];  
  66.         if (child.nodeName == key) {  
  67.           if (child.childNodes.length ==  1 ) {  
  68.            return  child.text;  
  69.            } else  {  
  70.             node = child;  
  71.             break ;  
  72.            }  
  73.        }  
  74.      }  
  75.    }  
  76.    return   "" ;  
  77.   }  
  78.   //返回父节点(通过节点名字和节点值)   
  79.    function getNod(nam,val){  
  80.       var node = xmlDoc.documentElement;  
  81.       var childs = node.childNodes;     
  82.       for  (var i= 0 ;i<childs.length ;i++ )  
  83.       {  
  84.        var child = childs[i];  
  85.        var childms = child.childNodes;  
  86.        for (var k= 0 ;k<childms.length;k++){  
  87.        var childm = childms[k];  
  88.         if (childm.nodeName == nam && (childm.text).substring( 0 , 6 )==val){  
  89.          //alert(val);   
  90.          return  child;  
  91.         }  
  92.        }  
  93.       }  
  94.       return   '' ;  
  95.    }  
  96.    //通过父节点和子节点名返回子节点值   
  97.    function getNodVal(nods,nam){  
  98.        var childms = nods.childNodes;  
  99.        for (var k= 0 ;k<childms.length;k++){  
  100.        var childm = childms[k];  
  101.         if (childm.nodeName == nam){  
  102.          //alert(childm.text);   
  103.          return  childm.text;  
  104.         }  
  105.        }  
  106.         
  107.       return   '' ;  
  108.    }  
  109.    //通过父节点和子节点名返回子节点   
  110.    function getCurNod(nods,nam){  
  111.        var childms = nods.childNodes;  
  112.        for (var k= 0 ;k<childms.length;k++){  
  113.        var childm = childms[k];  
  114.         if (childm.nodeName == nam){  
  115.          //alert(childm.text);   
  116.          return  childm;  
  117.         }  
  118.        }  
  119.         
  120.       return   '' ;  
  121.    }  
  122.   
  123.     //开始查找   
  124.     function  query(){  
  125.        var renum = /^\d{5 }$/;  
  126.        if (renum.exec(xh.value)){  
  127.        if (xmlDoc.selectSingleNode( "/学生管理[学生/学号=" +xh.value+ "]" )){  
  128.              var nod = getNod('学号' ,xh.value);  
  129.              //getNodVal(nod,'姓名');   
  130.              //getNodVal(nod,'性别');   
  131.              //getNodVal(nod,'籍贯');   
  132.            /*document.getElementById("xm").value=xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/姓名").text;  
  133.            document.getElementById("xb").value=xmlDoc.selectSingleNode("/ 学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/性别").text;  
  134.            document.getElementById("jg").value=xmlDoc.selectSingleNode("/ 学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/籍贯").text;  
  135.            document.getElementById("xh").disabled="true";   */   
  136.            document.getElementById("xm" ).value=getNodVal(nod, '姓名' );  
  137.            document.getElementById("xb" ).value= getNodVal(nod, '性别' );  
  138.            document.getElementById("jg" ).value= getNodVal(nod, '籍贯' );  
  139.          }else {  
  140.           alert("该学号还没有被占用!" );  
  141.          }  
  142.        }else {  
  143.         alert("学号非法!学号5位数字!" );  
  144.         return   false ;  
  145.        }  
  146.     }  
  147.     //修改   
  148.     function mod(){    
  149.         if (info_check()){  
  150.           if (xmlDoc.selectSingleNode( "/学生管理[学生/学号=" +xh.value+ "]" )){  
  151.             if (confirm( "确认修改?" )){  
  152.               var nod = getNod('学号' ,xh.value);  
  153.               getCurNod(nod,'姓名' ).text=xm.value;  
  154.               getCurNod(nod,'性别' ).text=xb.value;  
  155.               getCurNod(nod,'籍贯' ).text=jg.value;  
  156.               /*  
  157.               xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/姓名").text=xm.value;  
  158.               xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/性别").text=xb.value;  
  159.               xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]").selectSingleNode("学生/籍贯").text=jg.value;  
  160.               */   
  161.               saveXML();  
  162.               //document.getElementById("xh").disabled="false";   
  163.               document.getElementById("xh" ).value= "" ;  
  164.               document.getElementById("xm" ).value= "" ;  
  165.               document.getElementById("xb" ).value= "" ;  
  166.               document.getElementById("jg" ).value= "" ;  
  167.               document.getElementById("ad" ).style.visibility= "hidden" ;  
  168.               document.getElementById("qmd" ).style.visibility= "hidden" ;  
  169.               alert("修改成功!" );  
  170.               location.reload();  
  171.             }  
  172.           }else {  
  173.             alert("该学号还没有被占用!请按学号查询再进行修改!" );  
  174.             return   false ;  
  175.           }  
  176.         }  
  177.     }  
  178.     //新增学生   
  179.     function add(){  
  180.         var  vadd = document.getElementById("add" ).value;  
  181.         if (vadd== "新增" ){  
  182.            document.getElementById("xh" ).value= "" ;  
  183.            document.getElementById("xm" ).value= "" ;  
  184.            document.getElementById("xb" ).value= "" ;  
  185.            document.getElementById("jg" ).value= "" ;  
  186.            document.getElementById("qmd" ).style.visibility= "hidden" ;  
  187.            document.getElementById('info' ).style.visibility= 'hidden' ;  
  188.            document.getElementById("s" ).value= "显示学生信息" ;  
  189.            document.getElementById("ad" ).style.visibility= "visible" ;  
  190.            document.getElementById("add" ).value= "保存" ;  
  191.            document.getElementById("can" ).style.visibility= "visible" ;  
  192.         }else {  
  193.            if (info_check()){  
  194.            add_node();  
  195.            saveXML();  
  196.            document.getElementById("xh" ).value= "" ;  
  197.            document.getElementById("xm" ).value= "" ;  
  198.            document.getElementById("xb" ).value= "" ;  
  199.            document.getElementById("jg" ).value= "" ;  
  200.            document.getElementById("ad" ).style.visibility= "hidden" ;  
  201.            document.getElementById("qmd" ).style.visibility= "hidden" ;  
  202.            document.getElementById("add" ).value= "新增" ;  
  203.            alert("新增成功!" );  
  204.            location.reload();  
  205.            }  
  206.         }  
  207.     }  
  208.       
  209.     //删除学生   
  210.     function del(){  
  211.        var renum = /^\d{5 }$/;  
  212.        if (renum.exec(document.getElementById( "xh" ).value)){  
  213.         if (xmlDoc.selectSingleNode( "/学生管理[学生/学号=" +xh.value+ "]" )){  
  214.           if (confirm( "确认删除?" )){  
  215.             /*var node = xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]");  
  216.             if(node.hasChildNodes()){               
  217.              var kids = node.childNodes;                 
  218.             for(var i=0;i<kids.length;i++){                         
  219.                 del();     
  220.               }     
  221.             }  
  222.              node.parentNode.removeChild(node);  
  223.              */   
  224.               var nod = getNod('学号' ,xh.value);  
  225.               nod.parentNode.removeChild(nod);  
  226.   
  227.              saveXML();  
  228.              can();  
  229.              alert("删除成功!" );  
  230.              location.reload();  
  231.              }  
  232.         }else {  
  233.             alert("该学号还没有被占用!请按学号查询再进行修改!" );  
  234.             return   false ;  
  235.         }  
  236.       }else {  
  237.         alert("学号非法!为5位数字!" );  
  238.         return   false ;  
  239.       }  
  240.     }  
  241.   
  242.   
  243.     //取消新增   
  244.     function can(){  
  245.        document.getElementById("xh" ).value= "" ;  
  246.        document.getElementById("xm" ).value= "" ;  
  247.        document.getElementById("xb" ).value= "" ;  
  248.        document.getElementById("jg" ).value= "" ;  
  249.        document.getElementById("ad" ).style.visibility= "hidden" ;  
  250.        document.getElementById("can" ).style.visibility= "hidden" ;  
  251.        document.getElementById("qmd" ).style.visibility= "hidden" ;  
  252.        document.getElementById("add" ).value= "新增" ;  
  253.     }  
  254.     //增加结点   
  255.     function add_node(){  
  256.         var  oxh = xmlDoc.createElement("学号" );  
  257.         oxh.appendChild(xmlDoc.createTextNode(xh.value));  
  258.         var  oxm = xmlDoc.createElement("姓名" );  
  259.         oxm.appendChild(xmlDoc.createTextNode(xm.value));  
  260.         var  oxb = xmlDoc.createElement("性别" );  
  261.         oxb.appendChild(xmlDoc.createTextNode(xb.value));  
  262.         var  ojg = xmlDoc.createElement("籍贯" );  
  263.         ojg.appendChild(xmlDoc.createTextNode(jg.value));  
  264.   
  265.         var oxs = xmlDoc.createElement("学生" );  
  266.         oxs.appendChild(oxh);  
  267.         oxs.appendChild(oxm);  
  268.         oxs.appendChild(oxb);  
  269.         oxs.appendChild(ojg);  
  270.   
  271.         var parent = xmlDoc.selectSingleNode("/学生管理" );  
  272.         if (parent.hasChildNodes())   {     
  273.            parent.insertBefore(oxs,parent.firstChild);     
  274.           }else {     
  275.            parent.appendChild(oxs);     
  276.           }   
  277.     }  
  278.     //保存XML   
  279.     function saveXML(){  
  280.         xmlDoc.save("stu.xml" );  
  281.     }  
  282.     //验证新增数据   
  283.     function info_check(){  
  284.       var renum = /^\d{5 }$/;  
  285.       var rec = /^[\u4E00-\u9FA5]{2 , 5 }$/;  
  286.       if (!renum.exec(document.getElementById( "xh" ).value)){  
  287.         alert("学号非法!为5位数字!" );  
  288.         return   false ;  
  289.        }  
  290.       if (!rec.exec(xm.value)){  
  291.         alert("姓名非法!只能是中文最少两个字,最多不得超过5个字!" );  
  292.         return   false ;  
  293.       }  
  294.       //alert(xb.value!="男");   
  295.       switch (xb.value){  
  296.        case   "男" : break ;  
  297.        case   "女" : break ;  
  298.        default :alert( "性别只能是\"男\"或\"女\"!" );  return   false ;  
  299.       }  
  300.   
  301.   
  302.       if (!rec.exec(jg.value)){  
  303.         alert("籍贯非法!只能是中文最少两个字,最多不得超过5个字!!" );  
  304.         return   false ;  
  305.       }  
  306.       return   true ;  
  307.     }  
  308.       
  309. //-->   
  310. </SCRIPT>  
  311.   
  312. <input id="s"  type=button value= "显示学生信息"  onclick= "show();" >  
  313. <input id="que"  type=button value= "精确查询"  onclick= "que();" >  
  314. <input id="add"  type=button value= "新增"  onclick= "add();" >  
  315. <input id="can"  type=button value= "取消"  onclick= "can();"  style= "visibility:hidden" >  
  316.   
  317. <br>  
  318. <center>  
  319. <div id="ad"  style= "visibility:hidden" >  
  320.   <table><tr><td>学号:  
  321.   <input type=text id="xh"  style= "ime-mode:disabled"  size= 5  maxlength= 5  onKeyPress= "if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false" ><!-- style 用于光闭输入法 onKeyPress 只能输入数字-->  
  322.   </td><td>姓名:  
  323.   <input type=text id="xm"  size= 10  maxlength= 5 >  
  324.   </td><td>性别:  
  325.   <input type=text id="xb"  size= 5  maxlength= 5 >  
  326.   </td><td>籍贯:  
  327.   <input type=text id="jg"  size= 10  maxlength= 5 >  
  328.   </td>  
  329.   </tr>  
  330.   </table>  
  331. </div>  
  332. <div id="qmd"  style= "visibility:hidden" >  
  333.   <table>  
  334.   <tr align="center" >    
  335.   <td></td>  
  336.   <td><input id="que"  type=button value= "查询"  onclick= "query();" ></td>  
  337.   <td><input id="mod"  type=button value= "修改"  onclick= "mod();" ></td>  
  338.   <td><input id="del"  type=button value= "删除"  onclick= "del();" ></td>     
  339.   </tr>  
  340.   </table>  
  341. </div>  
  342. </center>  
  343. <div id="findPanel" >  
  344.   <div id="findPanelTitle" >可拖动</div>  
  345.   <div id="findPanelContent" >  
  346.     <input type="text"  size= "20"  value= "a"  id= "key"  onkeydown= "javascript:ChckSubmit(event);" >  
  347.     <input type="button"  value= "查找"  onclick= "javascript:OnKeySubmit();" >  
  348.   </div>  
  349. </div>  
  350. <script language="javascript" >  
  351. <!--  
  352. var findPanel = document.getElementById("findPanel" );  
  353. var findPanelTitle = document.getElementById("findPanelTitle" );  
  354. var findPanelContent = document.getElementById("findPanelContent" );  
  355. var findPanel_orgnX = 50 ;  
  356. var findPanel_orgnY = 50 ;  
  357.   
  358. //设置物件位置   
  359. findPanel.style.pixelLeft = document.body.scrollLeft + findPanel_orgnX;  
  360. findPanel.style.pixelTop = document.body.scrollTop + findPanel_orgnY;  
  361. //================================================================================   
  362. var foundCnt = 0 //已经找到了的结果的数量   
  363.   
  364. //查找入口函数   
  365. function Find(key)  
  366. {  
  367.     if  (key ==  "" )  
  368.     {  
  369.         return ;  
  370.     }  
  371.       
  372.     if  (document.all)  
  373.     {  
  374.         IEFind(key);  
  375.     }  
  376.     else   
  377.     {  
  378.         NSFind(key);  
  379.     }  
  380. }  
  381.   
  382. //浏览器为 IE 系列   
  383. function IEFind(key)  
  384. {  
  385.     var rng = document.body.createTextRange();  
  386.     var found = false ;  
  387.     for  (var i= 0 ; i<=foundCnt && (found=rng.findText(key)); i++)  
  388.     {  
  389.         rng.moveStart("character" 1 );  //找到,后移一位以查找下一个   
  390.     }  
  391.       
  392.     if  (found)  
  393.     {  
  394.          rng.moveStart("character" , - 1 );  
  395.          rng.findText(key);  
  396.          rng.select();  
  397.          rng.scrollIntoView();  
  398.          foundCnt++;  
  399.     }  
  400.     else   
  401.     {  
  402.         if  (foundCnt >  0 )  
  403.         {  
  404.             //已经查找一遍,找到有符合条件的结果,重新开始查找   
  405.             foundCnt = 0 ;  
  406.             IEFind(key);  
  407.         }  
  408.         else   
  409.         {  
  410.             //已经查找一遍,没有找到符合条件的结果   
  411.             alert("文档搜索完毕。" );  
  412.         }  
  413.     }  
  414. }  
  415.   
  416. //浏览器为 NS 系列   
  417. function NSFind(key)  
  418. {  
  419.     if  (window.find(key))  
  420.     {  
  421.         foundCnt++;  
  422.     }  
  423.     else   
  424.     {  
  425.         var found = false ;  
  426.         while  (window.find(key,  false true ))  
  427.         {  
  428.             found = true ;  
  429.         }  
  430.           
  431.         if  (found)  
  432.         {  
  433.             //已经查找一遍,找到有符合条件的结果,重新查找也已经开始   
  434.             foundCnt = 1 ;  
  435.         }  
  436.         else   
  437.     
分享到:
评论

相关推荐

    AJAX初学者入门源码,单表增删改查例子,适合初学者

    总结:AJAX技术为Web开发提供了强大的功能,通过理解和实践,初学者可以逐步掌握如何利用AJAX实现实时、无刷新的交互体验,特别是单表增删改查这样的常见业务场景。提供的源码实例是一个很好的起点,通过深入研究和...

    jquery easy ui+ssh 增删改查例子

    这里,我们深入探讨一下使用jQuery EasyUI与SSH框架进行数据操作(增删改查)的基础知识。 jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列轻量级、易于使用的组件,如表格、对话框、菜单等,用于构建富...

    XML.rar_crud_javascript_javascript xml_xml_增删改查英文

    在这个“XML.rar”压缩包中,我们重点关注的是使用JavaScript来操作XML,实现数据的增删改查,并且支持中英文切换的功能。 在JavaScript中处理XML,首先我们需要了解XML DOM(Document Object Model)。DOM是一种...

    EasyUi框架,增删改查例子(保证完整)

    这个"EasyUi框架,增删改查例子(保证完整)"是一个完整的示例项目,旨在帮助开发者快速理解和应用EasyUi进行数据管理操作,如添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 首先,让我们详细了解...

    ajax增删改查的例子

    这个"ajax增删改查的例子"是一个很好的实践教程,可以帮助开发者深入理解如何在实际项目中运用AJAX进行数据操作。 首先,让我们来看看"用户名验证"这一部分。在用户注册或登录时,实时验证用户名的可用性是常见的...

    javascript操作xml(增删改查)例子代码hta版

    本篇文章主要介绍了在HTA环境中,如何使用JavaScript进行XML文件的增删改查操作。首先,文章指出在进行这些操作时,需要将HTML代码保存为hta后缀,否则在尝试对XML文件进行操作时会出现权限不足的提示。接着,文章...

    mvc增删改查

    本篇文章将深入探讨基于EasyUI的MVC版增删改查操作,并结合AJAX技术来阐述其实现方式。 **一、MVC模式详解** 1. **模型(Model)**:模型层负责处理业务逻辑和数据处理。在这个例子中,它可能包括对数据库的操作,...

    ssh的简单增删改查

    这个“ssh的简单增删改查”示例旨在演示如何在Web应用中利用SSH框架进行基本的数据操作。在这个小例子中,我们将探讨SSH框架的核心概念以及如何通过Ajax技术实现异步的删除操作。 1. **Struts**:Struts是一个MVC...

    jqGrid增删改查例子

    这个"jqGrid增删改查例子"是一个实际应用示例,展示了如何结合Struts2框架和MySQL数据库实现一个完整的CRUD(创建、读取、更新、删除)功能的前端表格。 首先,让我们了解一下jqGrid的核心功能: 1. 数据展示:...

    AJAX-dwr实现增删改查的示例代码

    在"AJAX-dwr实现增删改查的示例代码"中,DWR被用来构建一个简单的CRUD(Create, Read, Update, Delete)应用程序。这个示例主要帮助开发者了解如何在实际项目中运用DWR来处理页面的交互和数据操作。由于此示例不依赖...

    struts1.2+ibatis+DWR2.0+MySql5.0增删改查的小例子

    这个小例子展示了如何将这些技术整合在一起,实现一个基本的增删改查功能。下面我们将详细探讨这四个技术以及它们在实际应用中的工作原理。 **Struts1.2** 是一款基于MVC设计模式的Java Web框架,主要负责控制层的...

    dwr增删改查

    这个"**dwr增删改查**"的例子,正如标题和描述所提及,是一个非常基础且实用的教程,特别适合初学者了解和掌握DWR的基本用法,包括如何进行数据的添加、删除、修改和查询操作。 DWR的核心功能在于提供了一种方式,...

    SSH2 + JQuery EasyUI 做的一个对书籍增删改查的例子

    JQuery EasyUI 做的一个对书籍增删改查的例子”表明这是一个使用Struts2(SSH框架的一部分)、Spring和Hibernate(SSH框架的另外两个部分)结合JQuery EasyUI创建的Web应用程序示例,主要用于图书管理系统的CRUD...

    html只在前端原生增删改查HTML.zip

    在这个"html只在前端原生增删改查HTML.zip"压缩包中,我们看到的是一个使用纯HTML和JavaScript实现的前端数据管理示例。这个示例可能包含了以下几个关键知识点: 1. **HTML表单**:HTML中的`&lt;form&gt;`元素用于创建...

    SSH2 整合简单增删改查实例,仅供学习使用

    在SSH2整合的示例中,Ajax可能被用来实现页面无刷新的增删改查操作,提升用户体验。 7. **SQL**:SQL(Structured Query Language)是用于管理关系数据库的标准语言。在这个实例中,开发者会编写SQL语句来创建、...

    一个页面实现Ajax效果的增删改查-JQuery

    在网页开发中,Ajax(Asynchronous JavaScript and XML)与jQuery的结合使用,极大地提升了用户体验,实现了页面无需刷新即可完成数据的增删改查操作。这个主题"一个页面实现Ajax效果的增删改查-JQuery"深入浅出地...

    SSM+Maven+ExtJs 在eclipse中实现的增删改查例子

    这个例子是一个在Eclipse环境中实现的增删改查(CRUD)应用,它结合了Spring、Spring MVC(Spring Web MVC)、MyBatis(原称SSM)以及前端的ExtJs框架。下面将详细介绍这些知识点: 1. **Spring**:Spring是Java...

    用mvc实现增删改查,连数据库的

    在本案例中,Model组件将包含数据库连接代码,执行SQL语句以完成增删改查操作。 2. **View(视图)**:负责显示数据,通常为用户界面。在 MVC 架构中,视图不直接与模型交互,而是通过控制器获取更新后的数据,并...

    ssh实现增删查改的例子

    在这个“ssh实现增删查改的例子”项目中,我们将探讨SSH框架如何协同工作,实现对MySQL数据库的数据操作。 首先,Struts2作为MVC框架,主要负责处理用户的HTTP请求。它通过Action类和ActionMapping将用户请求映射到...

    SSH+ExtJs实现表单的增删改查CRUD

    总结来说,SSH+ExtJS实现的CRUD系统结合了Java后端的高效处理能力和JavaScript前端的用户体验优化,通过JSON进行数据交换,实现了对数据库中如“Student”这样的记录进行增、删、改、查的功能。这样的系统设计灵活且...

Global site tag (gtag.js) - Google Analytics