Smartclient+demo+实例

用实例见证smartclient的厉害吧。
[html]  view plain copy print ?
  1.  先貼出來圖片 炫炫!很閃吧。  
  2.   
  3. 建表語句:  
  4. create table supplyItem(  
  5.     itemID int primary key identity(1,1),  
  6.     itemName varchar(300),  
  7.     unitCost decimal(28,2), --55.23    
  8.     SKU varchar(30),  
  9.     description varchar(5000),  
  10.     category varchar(128),   
  11.     inStock varchar(30),  
  12.     units varchar(30),  
  13.     nextShipment datetime   
  14. )  
  15.   
  16. --drop table supplyCategory  
  17. create table supplyCategory(  
  18.     categoryName varchar(128) primary key,  
  19.     parentID varchar(255),    
  20. )  
  21. demoAppJS.jsp  
  22. Jsp代碼:  
  23. <!--------------------------------------------------------------------  
  24.     整合人:舒婷  *_*  
  25. ---------------------------------------------------------------------->  
  26. <HTML>  
  27. <HEAD>  
  28. <TITLE>SmartClient Demo Application</TITLE>     
  29.     <meta http-equiv="pragma" content="no-cache">  
  30.     <meta http-equiv="cache-control" content="no-cache">  
  31.     <meta http-equiv="expires" content="0">      
  32.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  33.     <meta http-equiv="description" content="This is my page">  
  34.     <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>   
  35.     <SCRIPT SRC=smartclient/modules/ISC_History.js></SCRIPT>  
  36.     <SCRIPT SRC=smartclient/modules/ISC_Core.js></SCRIPT>  
  37.     <SCRIPT SRC=smartclient/modules/ISC_Foundation.js></SCRIPT>  
  38.     <SCRIPT SRC=smartclient/modules/ISC_Containers.js></SCRIPT>  
  39.     <SCRIPT SRC=smartclient/modules/ISC_Grids.js></SCRIPT>  
  40.     <SCRIPT SRC=smartclient/modules/ISC_Forms.js></SCRIPT>  
  41.     <SCRIPT SRC=smartclient/modules/ISC_DataBinding.js></SCRIPT>  
  42.     <SCRIPT SRC=smartclient/modules/load_skin.js></SCRIPT>  
  43. </HEAD>  
  44.   
  45. <BODY CLASS="pageBackground" STYLE="overflow:hidden">  
  46. <script src="demoAppJS.js"></script>  
  47. </BODY>  
  48. </HTML>  
  49.   
  50. demoAppJS.js  
  51.   
  52.   
  53. isc.setAutoDraw(false);  
  54. //<isomorphic:loadDS name="supplyItem"/>  
  55. //<isomorphic:loadDS name="supplyCategory"/>  
  56. isc.DataSource.create({  
  57.         ID:"supplyCategory",  
  58.         dataFormat:"xml",  
  59.         recordXPath:"//country",  
  60.         fields:[  
  61.             {name:"categoryName",primaryKey:true},  
  62.             {foreignKey:"supplyCategory.categoryName",//这一步 不懂、??  
  63.              hidden:true,  
  64.              name:"parentID",  
  65.              required:true,  
  66.              rootValue:"root", //初始化加载parentID为root记录  如果没有设置rootValue 会出现死循环式的树  
  67.              type:"text"  
  68.             }  
  69.         ],  
  70.         operationBindings:[  
  71.         {  
  72.             operationType:"fetch",  
  73.             dataURL:"demoApp/findTreeAll.action"  
  74.         }  
  75.         ]  
  76. });  
  77. isc.DataSource.create({   
  78.         ID:"supplyItem",  
  79.         dataFormat:"xml",  //数据格式 xml格式  
  80.         recordXPath:"//country", //--<country></country>  
  81.         fields:[  
  82.             //{name:"itemId",primaryKey:true},//countryCode設置為主鍵  
  83.             {name:"itemName", title:"itemName"},  
  84.             {name:"unitCost", title:"unitCost"},  
  85.             {name:"SKU",title:"SKU"},  
  86.             {name:"description",title:"description"},  
  87.             {name:"category",title:"category"},  
  88.             {name:"inStock",title:"inStock"},  
  89.             {name:"nextShipment",title:"nextShipment"}  
  90.         ],  
  91.         operationBindings:[   
  92.             {operationType:"fetch",  
  93.              dataURL:"demoApp/findAll.action"  
  94.              },  
  95.             {operationType:"add"  
  96.              //dataURL:"country/insertInfo.action"  
  97.              },  
  98.             {operationType:"update"  
  99.              //dataURL:"country/updateInfo.action"  
  100.              },  
  101.             {operationType:"remove"  
  102.              //dataURL:"country/deleteInfo.action"  
  103.              }  
  104.         ]  
  105.     });  
  106. isc.Page.setAppImgDir(isc.Page.getIsomorphicDocsDir()+"exampleImages/"); //设置img文件路径  
  107.   
  108. isc.TreeGrid.create({  
  109.     ID:"categoryTree",  
  110.     dataSource:"supplyCategory",  
  111.     nodeClick:"findForm.findItems(node.categoryName)",  
  112.     showHeader:false,  
  113.     leaveScrollbarGap:false,  
  114.     animateFolders:true,  
  115.     canAcceptDroppedRecords:true,  
  116.     canReparentNodes:false,  
  117.     selectionType:"single",  
  118.     animateRowsMaxTime:750  
  119. });  
  120.   
  121. isc.HTMLPane.create({  
  122.     ID:"helpCanvas",  
  123.     contentsURL:"demoApp_helpText.html",  
  124.     overflow:"auto",  
  125.     styleName:"defaultBorder",  
  126.     padding:10  
  127. });  
  128.   
  129. isc.IButton.create({  
  130.     ID:"findButton",  
  131.     title:"Find",  
  132.     left:25,  
  133.     top:16,  
  134.     width:80,  
  135.     click:"findForm.findItems()",  
  136.     icon:"demoApp/icon_find.png",  
  137.     iconWidth:24  
  138. });  
  139.   
  140. isc.SearchForm.create({  
  141.     ID:"findForm",  
  142.     dataSource:supplyItem,  
  143.     left:130,  
  144.     top:10,  
  145.     cellPadding:4,  
  146.     numCols:6,  
  147.     fields:[  
  148.         {name:"SKU"},  
  149.         {name:"itemName", editorType:"comboBox", optionDataSource:"supplyItem",   
  150.         pickListWidth:250},  
  151.         {name:"findInCategory", editorType:"checkbox",   
  152.             title:"Use category", defaultValue:true, shouldSaveValue:false}  
  153.     ],  
  154.       
  155.     // Function to actually find items  
  156.     findItems : function (categoryName) {  
  157.         var findValues;  
  158.       
  159.         if (this.getValue('findInCategory') && categoryTree.selection.anySelected()) {  
  160.             // use tree category and form values  
  161.             if (categoryName == null) categoryName = categoryTree.getSelectedRecord().categoryName;  
  162.             findValues = {category:categoryName};  
  163.             isc.addProperties(findValues, this.getValues());  
  164.               
  165.         } else if (categoryName == null) {  
  166.             // use form values only  
  167.             findValues = this.getValues();  
  168.               
  169.         } else {  
  170.             // use tree category only  
  171.             findValues = {category:categoryName};  
  172.         }  
  173.           
  174.         itemList.filterData(findValues);  
  175.           
  176.         itemDetailTabs.clearDetails();  
  177.     }  
  178. });  
  179.   
  180. isc.ListGrid.create({  
  181.     ID:"itemList",  
  182.     dataSource:supplyItem,  
  183.     useAllDataSourceFields:true,  
  184.     fields:[  
  185.         {name:"itemName", title:"Name", showHover:true},  
  186.         {name:"unitCost",   
  187.          formatCellValue:"return isc.Format.toCurrencyString(parseFloat(value))",   
  188.          editorType:"spinner", editorProperties:{step:0.01}},  
  189.         {name:"SKU", canEdit:false},  
  190.         {name:"description", showHover:true},  
  191.         {name:"category", canEdit:false},  
  192.         {name:"inStock", width:55, align:"center",  
  193.             formatCellValue : function (value, record, field, rowNum, colNum) {  
  194.                 if (value) return isc.Canvas.imgHTML("demoApp/checked.png",13,13);  
  195.                 else return isc.Canvas.imgHTML("demoApp/unchecked.png",13,13)  
  196.             }},  
  197.         {name:"nextShipment", showIf:"false"}  
  198.     ],  
  199.     recordClick:"this.updateDetails()",  
  200.     canEdit:true,  
  201.     modalEditing:true,  
  202.     cellChanged:"this.updateDetails()",  
  203.     alternateRecordStyles:true,  
  204.     canDragRecordsOut:true,  
  205.     hoverWidth:200,  
  206.     hoverHeight:20,  
  207.     selectionType:"single",  
  208.     cellContextClick:"return itemListMenu.showContextMenu()",  
  209.     updateDetails : function () {  
  210.         var record = this.getSelectedRecord();  
  211.         if (record == null) return itemDetailTabs.clearDetails();  
  212.           
  213.         if (itemDetailTabs.getSelectedTabNumber() == 0) {            itemViewer.setData(record)   
  214.         } else {  
  215.             itemDetailTabs.updateTab("editTab", editForm);  
  216.             editForm.editRecord(record);  
  217.         }  
  218.     }  
  219. });  
  220.   
  221. isc.Menu.create({  
  222.     ID:"itemListMenu",  
  223.     cellHeight:22,  
  224.     data:[  
  225.         {title:"Add New Item",  
  226.             icon:"demoApp/icon_add.png",  
  227.             click:function () {  
  228.                 itemList.selection.deselectAll();  
  229.                 itemDetailTabs.selectTab(1);  
  230.                 itemList.updateDetails();  
  231.             }  
  232.         },  
  233.         {isSeparator:true},  
  234.         {title:"Show Details",  
  235.             icon:"demoApp/icon_view.png",  
  236.             click:"itemDetailTabs.selectTab(0); itemList.updateDetails()"},  
  237.         {title:"Edit Item",  
  238.             icon:"demoApp/icon_edit.png",  
  239.             click:"itemDetailTabs.selectTab(1); itemList.updateDetails()"},  
  240.         {title:"Delete Item",  
  241.             icon:"demoApp/icon_delete.png",  
  242.             click:"itemList.removeSelectedData(); itemDetailTabs.clearDetails()"}  
  243.     ]  
  244. });  
  245.   
  246.   
  247. isc.DetailViewer.create({  
  248.     ID:"itemViewer",  
  249.     dataSource:supplyItem,  
  250.     width:"100%",  
  251.     margin:"25",  
  252.     emptyMessage:"Select an item to view its details"  
  253. });  
  254.   
  255. isc.DynamicForm.create({  
  256.     ID:"editForm",  
  257.     dataSource:supplyItem,  
  258.     useAllDataSourceFields:true,  
  259.     fields:[  
  260.         {name:"SKU"},  
  261.         {name:"description", editorType:"textArea",rowSpan:3, width:200},  
  262.         {name:"category", editorType:"pickTree", dataSource:supplyCategory, // 无法显示editform  
  263.          emptyMenuMessage:"No Sub Categories", canSelectParentItems:true},  
  264.         {name:"unitCost", editorType:"spinner", step:0.01},  
  265.         {name:"inStock"},  
  266.         {name:"nextShipment", useTextField:true,editorType:"date"},  
  267.         {name:"savebtn", editorType:"button", align:"center",   
  268.             width:100, colSpan:4, title:"Save Item", click:"editForm.saveData()"}  
  269.     ],  
  270.     width:650,  
  271.     numCols:4,  
  272.     colWidths:[100,200,100,200],  
  273.     margin:25,  
  274.     cellPadding:5,  
  275.     autoFocus:false  
  276. });  
  277.   
  278. isc.Label.create({  
  279.     ID:"editorMessage",  
  280.     autoDraw: false,  
  281.     width:"100%",  
  282.     height:"100%",  
  283.     align:"center",  
  284.     contents:"Select a record to edit, or a category to insert a new record into"  
  285. });  
  286.   
  287. isc.TabSet.create({  
  288.     ID:"itemDetailTabs",  
  289.     tabs:[  
  290.         {title:"View", pane:itemViewer, ID:"viewTab", width:70, icon:"demoApp/icon_view.png"},  
  291.         {title:"Edit", pane:editForm, ID:"editTab", width:70, icon:"demoApp/icon_edit.png"}  
  292.     ],  
  293.   
  294.     tabSelected:"itemList.updateDetails()",  
  295.   
  296.     clearDetails : function () {  
  297.         var selectedTab = this.getSelectedTabNumber();  
  298.         if (selectedTab == 0) {  
  299.             itemViewer.setData();  
  300.         } else if (selectedTab == 1) {  
  301.             if (categoryTree.getSelectedRecord() != null) {  
  302.                 this.updateTab("editTab", editForm);  
  303.                 editForm.editNewRecord({category:categoryTree.getSelectedRecord().categoryName});  
  304.             } else {  
  305.                 this.updateTab("editTab", editorMessage);  
  306.             }  
  307.         }  
  308.     }  
  309.   
  310. });  
  311. // Define application layout  
  312. // ---------------------------------------------------------------------  
  313.   
  314. isc.HLayout.create({  
  315.     ID:"pageLayout",  
  316.     width:"100%",  
  317.     height:"100%",  
  318.     layoutMargin:20,  
  319.     members:[  
  320.         isc.SectionStack.create({  
  321.             ID:"leftSideLayout",  
  322.             width:280,  
  323.             showResizeBar:true,  
  324.             visibilityMode:"multiple",  
  325.             animateSections:true,  
  326.             sections:[  
  327.                 {title:"Office Supply Categories", autoShow:true, items:[categoryTree]},  
  328.                 {title:"Instructions", autoShow:true, items:[helpCanvas]}  
  329.             ]  
  330.         }),  
  331.         isc.SectionStack.create({  
  332.             ID:"rightSideLayout",  
  333.             visibilityMode:"multiple",  
  334.             animateSections:true,  
  335.             sections:[  
  336.                 {title:"Find Items", autoShow:true, items:[  
  337.                     isc.Canvas.create({  
  338.                         ID:"findPane",  
  339.                         height:60,  
  340.                         overflow:"auto",  
  341.                         styleName:"defaultBorder",  
  342.                         children:[findForm,findButton]  
  343.                     })                
  344.                 ]},  
  345.                 {title:"Office Supply Items", autoShow:true, items:[itemList]},  
  346.                 {title:"Item Details", autoShow:true, items:[itemDetailTabs]}  
  347.             ]  
  348.         })  
  349.     ]  
  350. });  
  351.   
  352. isc.Page.setEvent("load", "pageLayout.draw()");  
  353. // Custom logic:   
  354. // When showing options in the combo-box, only show the options from the selected category  
  355. // if appropriate  
  356. findForm.getItem("itemName").addProperties({  
  357.     getPickListFilterCriteria : function () {  
  358.         var criteria = this.Super("getPickListFilterCriteria", arguments);  
  359.         if (this.form.getValue('findInCategory') && categoryTree.selection.anySelected()) {  
  360.             criteria.category = categoryTree.getSelectedRecord().categoryName;  
  361.         }  
  362.         return criteria  
  363.      }  
  364. });  
  365.    
  366. categoryTree.fetchData();  
  367.   
  368.   
  369. java代碼  
  370. DAO 層  
  371. package isc.java.Dao;  
  372.   
  373. import isc.java.Module.supplyItem;  
  374.   
  375. import java.util.List;  
  376.   
  377. import org.hibernate.SessionFactory;  
  378. import org.springframework.beans.factory.annotation.Autowired;  
  379. import org.springframework.orm.hibernate3.HibernateTemplate;  
  380. import org.springframework.stereotype.Repository;  
  381. @Repository  
  382. public class supplyItem_Dao {  
  383.     private HibernateTemplate hibernateTemplate;  
  384.     @SuppressWarnings("unused")  
  385.     @Autowired  
  386.     private void setHibernateTemplate (SessionFactory sessionFactory){  
  387.         this.hibernateTemplate =new HibernateTemplate(sessionFactory);  
  388.     }  
  389.     /*  
  390.      *  function findAll  
  391.      *  查询supplyItem表中所有记录  
  392.      *  并以list形式返回  
  393.      *    
  394.      * */  
  395.     @SuppressWarnings("unchecked")  
  396.     public List<supplyItem> findAll(String category){  
  397.         String hql="from supplyItem where category='"+category+"'";  
  398.         List list=this.hibernateTemplate.find(hql);  
  399.         return list;  
  400.     }  
  401.     /*  
  402.      * 根据category返回对应的记录  
  403.      * */  
  404.     @SuppressWarnings("unchecked")  
  405.     public supplyItem findInfoByID (int itemID){  
  406.         supplyItem supp=(supplyItem) this.hibernateTemplate.get(supplyItem.class, itemID);  
  407.         return supp;  
  408.     }  
  409.     /*  
  410.      * 删除指定记录  
  411.      *   
  412.      * */  
  413.     public void deleteInfo(supplyItem supp){  
  414.         this.hibernateTemplate.delete(supp);  
  415.     }  
  416.     /*  
  417.      * 更新修改后的记录  
  418.      * */  
  419.     public void updateInfo(supplyItem supp){  
  420.         this.hibernateTemplate.update(supp);  
  421.     }  
  422.     /*  
  423.      *增加记录   
  424.      * */  
  425.     public void insertInfo(supplyItem supp){  
  426.         this.hibernateTemplate.save(supp);  
  427.     }  
  428. }  
  429.   
  430.   
  431. package isc.java.Dao;  
  432.   
  433. import isc.java.Module.supplyCategory;  
  434.   
  435. import java.util.List;  
  436.   
  437. import org.hibernate.SessionFactory;  
  438. import org.springframework.beans.factory.annotation.Autowired;  
  439. import org.springframework.orm.hibernate3.HibernateTemplate;  
  440. import org.springframework.stereotype.Repository;  
  441. @Repository  
  442. public class supplyCategory_Dao {  
  443.     private HibernateTemplate hibernateTemplate;  
  444.     @SuppressWarnings("unused")  
  445.     @Autowired  
  446.     private void setHibernateTemplate (SessionFactory sessionFactory){  
  447.         this.hibernateTemplate =new HibernateTemplate(sessionFactory);  
  448.     }  
  449.       
  450.     @SuppressWarnings("unchecked")  
  451.     public List<supplyCategory> findAll(String parentId){  
  452.         String hql="from supplyCategory where parentId='"+parentId+"'";  
  453.         List list =this.hibernateTemplate.find(hql);  
  454.         return list;  
  455.     }  
  456. }  
  457.   
  458.   
  459. ENTITY層  
  460. package isc.java.Module;  
  461.   
  462. import javax.persistence.Column;  
  463. import javax.persistence.Entity;  
  464. import javax.persistence.Id;  
  465. import javax.persistence.Table;  
  466.   
  467. @Entity  
  468. @Table(name="supplyCategory")  
  469. public class supplyCategory {  
  470.     private String categoryName;  
  471.     private String parentId;  
  472.     @Id  
  473.     @Column(name="categoryName")  
  474.     public String getCategoryName() {  
  475.         return categoryName;  
  476.     }  
  477.     public void setCategoryName(String categoryName) {  
  478.         this.categoryName = categoryName;  
  479.     }  
  480.     @Column(name="parentId")  
  481.     public String getParentId() {  
  482.         return parentId;  
  483.     }  
  484.     public void setParentId(String parentId) {  
  485.         this.parentId = parentId;  
  486.     }  
  487.       
  488. }  
  489.   
  490.   
  491. package isc.java.Module;  
  492.   
  493. import javax.persistence.Column;  
  494. import javax.persistence.Entity;  
  495. import javax.persistence.GeneratedValue;  
  496. import javax.persistence.Id;  
  497. import javax.persistence.Table;  
  498.   
  499. @Entity  
  500. @Table(name="supplyItem")  
  501. public class supplyItem {  
  502.     private int itemID ;  
  503.     private String itemName;  
  504.     private double unitCost;  
  505.     private String SKU;  
  506.     private String description;  
  507.     private String category;  
  508.     private String inStock;  
  509.     private String nextShipment;  
  510.     @Id  
  511.     @GeneratedValue  
  512.     @Column(name="itemID")  
  513.     public int getItemID() {  
  514.         return itemID;  
  515.     }  
  516.     public void setItemID(int itemID) {  
  517.         this.itemID = itemID;  
  518.     }  
  519.     @Column(name="itemName")  
  520.     public String getItemName() {  
  521.         return itemName;  
  522.     }  
  523.     public void setItemName(String itemName) {  
  524.         this.itemName = itemName;  
  525.     }  
  526.     @Column(name="unitCost")  
  527.     public double getUnitCost() {  
  528.         return unitCost;  
  529.     }  
  530.     public void setUnitCost(double unitCost) {  
  531.         this.unitCostunitCost;  
  532.     }  
  533.     @Column(name="SKU")  
  534.     public String getSKU() {  
  535.         return SKU;  
  536.     }  
  537.     public void setSKU(String sku) {  
  538.         SKU = sku;  
  539.     }  
  540.     @Column(name="description")  
  541.     public String getDescription() {  
  542.         return description;  
  543.     }  
  544.     public void setDescription(String description) {  
  545.         this.description = description;  
  546.     }  
  547.     @Column(name="category")  
  548.     public String getCategory() {  
  549.         return category;  
  550.     }  
  551.     public void setCategory(String category) {  
  552.         this.category = category;  
  553.     }  
  554.     @Column(name="instock")  
  555.     public String getInStock() {  
  556.         return inStock;  
  557.     }  
  558.     public void setInStock(String inStock) {  
  559.         this.inStock = inStock;  
  560.     }  
  561.     @Column(name="nextShipment")  
  562.     public String getNextShipment() {  
  563.         return nextShipment;  
  564.     }  
  565.     public void setNextShipment(String nextShipment) {  
  566.         this.nextShipment = nextShipment;  
  567.     }  
  568.   
  569. }  
  570.   
  571. Service 層  
  572.   
  573. package isc.java.Service;  
  574.   
  575. import isc.java.Dao.supplyCategory_Dao;  
  576. import isc.java.Module.supplyCategory;  
  577.   
  578. import java.util.List;  
  579.   
  580. import org.springframework.beans.factory.annotation.Autowired;  
  581. import org.springframework.stereotype.Service;  
  582. import org.springframework.transaction.annotation.Transactional;  
  583.   
  584. @Service  
  585. public class supplyCategory_Service {  
  586.     private supplyCategory_Dao supplyCategory_dao;  
  587.     @Autowired  
  588.     public void setSupplyCategory_dao(supplyCategory_Dao supplyCategory_dao) {  
  589.         this.supplyCategory_dao = supplyCategory_dao;  
  590.     }  
  591.     @Transactional("demoApp")  
  592.     public List<supplyCategory> findAll(String parentId){  
  593.         return this.supplyCategory_dao.findAll(parentId);  
  594.     }  
  595. }  
  596.   
  597.   
  598. package isc.java.Service;  
  599.   
  600. import isc.java.Dao.supplyItem_Dao;  
  601. import isc.java.Module.supplyItem;  
  602.   
  603. import java.util.List;  
  604.   
  605. import org.springframework.beans.factory.annotation.Autowired;  
  606. import org.springframework.stereotype.Service;  
  607. import org.springframework.transaction.annotation.Transactional;  
  608. @Service  
  609. public class supplyItem_Service {  
  610.     private supplyItem_Dao supplyItem_dao;  
  611.     @Autowired  
  612.     public void setSupplyItem_dao(supplyItem_Dao supplyItem_dao) {  
  613.         this.supplyItem_dao = supplyItem_dao;  
  614.     }  
  615.     /*   
  616.      * 使用声明式事物管理  
  617.      * 在业务方法上进行@Transactional注解   
  618.      * 将事物规则应用到业务逻辑中  
  619.      * demoApp为限定词*_*  
  620.      * */  
  621.     @Transactional("demoApp")  
  622.     public List<supplyItem> findAll(String category){  
  623.         return this.supplyItem_dao.findAll(category);  
  624.     }  
  625.     @Transactional("demoApp")  
  626.     public supplyItem findInfoByID(int itemID){  
  627.         return this.supplyItem_dao.findInfoByID(itemID);  
  628.     }  
  629.     @Transactional("demoApp")  
  630.     public void deleteInfo(int itemID){  
  631.         supplyItem supp =this.supplyItem_dao.findInfoByID(itemID);  
  632.         this.supplyItem_dao.deleteInfo(supp);  
  633.     }  
  634.       
  635.     @Transactional("demoApp")  
  636.     public void updateInfo(supplyItem supp){  
  637.         this.supplyItem_dao.updateInfo(supp);  
  638.     }  
  639.       
  640.     @Transactional("demoApp")  
  641.     public void insertInfo(supplyItem supp){  
  642.         this.supplyItem_dao.insertInfo(supp);  
  643.     }  
  644. }  
  645.   
  646. Web層  
  647.   
  648. package isc.java.Web;  
  649.   
  650. import isc.java.Module.supplyCategory;  
  651. import isc.java.Service.supplyCategory_Service;  
  652.   
  653. import java.io.IOException;  
  654. import java.util.Enumeration;  
  655. import java.util.Iterator;  
  656. import java.util.List;  
  657.   
  658. import javax.servlet.ServletOutputStream;  
  659. import javax.servlet.http.HttpServletRequest;  
  660. import javax.servlet.http.HttpServletResponse;  
  661.   
  662. import org.springframework.beans.factory.annotation.Autowired;  
  663. import org.springframework.stereotype.Controller;  
  664. import org.springframework.web.bind.annotation.RequestMapping;  
  665. @Controller  
  666. public class supplyCategory_Controller {  
  667.     private supplyCategory_Service supplyCategory_service;  
  668.     @Autowired  
  669.     public void setSupplyCategory_service(  
  670.             supplyCategory_Service supplyCategory_service) {  
  671.         this.supplyCategory_service = supplyCategory_service;  
  672.     }  
  673.     @SuppressWarnings("unchecked")  
  674.     @RequestMapping(value="demoApp/findTreeAll.action")  
  675.     public void findAll(HttpServletResponse response,HttpServletRequest request){  
  676.         String parentId=request.getParameter("parentID");  
  677.         List<supplyCategory> list=this.supplyCategory_service.findAll(parentId);  
  678.         ServletOutputStream sos=null;  
  679.         try {  
  680.             sos=response.getOutputStream();  
  681.         } catch (IOException e) {  
  682.             // TODO Auto-generated catch block  
  683.             e.printStackTrace();  
  684.         }  
  685.         StringBuffer sbu=new StringBuffer();  
  686.         Iterator ita=(Iterator)list.iterator();  
  687.         while(ita.hasNext()){  
  688.             supplyCategory supplycategory=(supplyCategory)ita.next();  
  689.             sbu.append("<country>");  
  690.             sbu.append("<categoryName>"+supplycategory.getCategoryName()+"</categoryName>");  
  691.             sbu.append("<parentId>"+supplycategory.getParentId()+"</parentId>");  
  692.             sbu.append("</country>");  
  693.         }  
  694.         try {  
  695.             sos.print("<?xml version='1.0' encoding='UTF-8'?><records>"+sbu.toString()+"</records>");  
  696.         } catch (IOException e) {  
  697.             // TODO Auto-generated catch block  
  698.             e.printStackTrace();  
  699.         }  
  700.     }  
  701. }  
  702.   
  703.   
  704.   
  705. package isc.java.Web;  
  706.   
  707. import isc.java.Module.supplyItem;  
  708. import isc.java.Service.supplyItem_Service;  
  709.   
  710. import java.io.IOException;  
  711. import java.util.Iterator;  
  712. import java.util.List;  
  713.   
  714. import javax.servlet.ServletOutputStream;  
  715. import javax.servlet.http.HttpServletRequest;  
  716. import javax.servlet.http.HttpServletResponse;  
  717.   
  718. import org.springframework.beans.factory.annotation.Autowired;  
  719. import org.springframework.stereotype.Controller;  
  720. import org.springframework.web.bind.annotation.RequestMapping;  
  721. @Controller  
  722. public class supplyItem_Controller {  
  723.     private supplyItem_Service supplyItem_service;  
  724.     @Autowired  
  725.     public void setSupplyItem_service(supplyItem_Service supplyItem_service) {  
  726.         this.supplyItem_service = supplyItem_service;  
  727.     }  
  728.     /*  
  729.      * 从数据库中提取数据 以xml格式存储  
  730.      *   
  731.      * */  
  732.     @SuppressWarnings("unchecked")  
  733.     @RequestMapping(value="demoApp/findAll.action")  
  734.     public void findAll(HttpServletResponse response,HttpServletRequest request){  
  735.         String category=request.getParameter("category");//接受前台传过来的参数  
  736.         List<supplyItem>list =this.supplyItem_service.findAll(category);  
  737.         ServletOutputStream sos=null;  
  738.         try {  
  739.             sos = response.getOutputStream();  
  740.         } catch (IOException e) {  
  741.             e.printStackTrace();  
  742.         }  
  743.         StringBuffer sbu=new StringBuffer();  
  744.         Iterator ita = (Iterator) list.iterator();  
  745.         while(ita.hasNext()){  
  746.              supplyItem supplyitem=(supplyItem)ita.next();  
  747.              sbu.append("<country>");  
  748.              sbu.append("<itemID>"+supplyitem.getItemID()+"</itemID>");  
  749.              sbu.append("<itemName>"+supplyitem.getItemName()+"</itemName>");  
  750.              sbu.append("<unitCost>"+supplyitem.getUnitCost()+"</unitCost>");  
  751.              sbu.append("<SKU>"+supplyitem.getSKU()+"</SKU>");  
  752.              sbu.append("<description>"+supplyitem.getDescription()+"</description>");  
  753.              sbu.append("<category>"+supplyitem.getCategory()+"</category>");  
  754.              sbu.append("<inStock>"+supplyitem.getInStock()+"</inStock>");  
  755.              sbu.append("<nextShipment>"+supplyitem.getNextShipment()+"</nextShipment>");  
  756.              sbu.append("</country>");  
  757.        }  
  758.         try {  
  759.             sos.print("<?xml version='1.0' encoding='UTF-8'?><records>"+sbu.toString()+"</records>");  
  760.         } catch (IOException e) {   
  761.             e.printStackTrace();  
  762.         }  
  763.     }  
  764.     @RequestMapping(value="demoApp/deleteInfo.action")  
  765.     public void deleteInfo(HttpServletRequest request){  
  766.         int itemID=Integer.parseInt(request.getParameter("itemID"));  
  767. System.out.println("test======================"+itemID);  
  768.         this.supplyItem_service.deleteInfo(itemID);  
  769.     }  
  770.       
  771.     @RequestMapping(value="demoApp/updateInfo.action")  
  772.     public void updateInfo(HttpServletRequest request){  
  773.         int itemID=Integer.parseInt(request.getParameter("itemID"));  
  774.         supplyItem supp=this.supplyItem_service.findInfoByID(itemID);  
  775.         supp.setSKU(request.getParameter("SKU"));  
  776.         supp.setCategory(request.getParameter("category"));  
  777.         supp.setDescription(request.getParameter("description"));  
  778.         supp.setInStock(request.getParameter("inStock"));  
  779.         supp.setItemName(request.getParameter("itemName"));  
  780.         supp.setNextShipment(request.getParameter("nextShipment"));  
  781.         String s=request.getParameter("unitCost");  
  782.         supp.setUnitCost(Double.parseDouble(s));  
  783.         this.supplyItem_service.updateInfo(supp);  
  784.     }  
  785.       
  786.     @RequestMapping(value="demoApp/insertInfo.action")  
  787.     public void insertInfo(HttpServletRequest request){  
  788.         supplyItem supp=new supplyItem();  
  789.         supp.setCategory(request.getParameter("category"));  
  790.         supp.setSKU(request.getParameter("SKU"));  
  791.         supp.setDescription(request.getParameter("description"));  
  792.         supp.setInStock(request.getParameter("inStock"));  
  793.         supp.setItemName(request.getParameter("itemName"));  
  794.         supp.setNextShipment(request.getParameter("nextShipment"));  
  795.         supp.setUnitCost(Double.parseDouble(request.getParameter("unitCost")));  
  796.         this.supplyItem_service.insertInfo(supp);  
  797.     }  
  798. }  
  799.   
  800.   
  801. Xml   
  802.   
  803. App-config.xml  
  804. <?xml version="1.0" encoding="UTF-8"?>  
  805. <beans xmlns="http://www.springframework.org/schema/beans"  
  806.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  807.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
  808.     xmlns:context="http://www.springframework.org/schema/context"  
  809.     xsi:schemaLocation="  
  810.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  811.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  812.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  
  813.   
  814.     <!-- Scans the classpath of this application for @Components to deploy as beans -->  
  815.     <!-- 規約所有進行掃描的類,以完成Bean創建和自動依賴注入功能 -->  
  816.     <context:component-scan base-package="isc.java.*" />    
  817.     <!-- <context:annotation-config /> -->  
  818.     <!-- Configures the @Controller programming model -->  
  819.     <mvc:annotation-driven />  
  820.     <!-- misc -->  
  821.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  822.         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
  823.         <property name="suffix" value=".action"/>  
  824.     </bean>  
  825.       
  826.     <!-- Configures Hibernate - Database Config -->  
  827.     <import resource="db-config.xml" />  
  828. </beans>  
  829.   
  830. Db-config.xml  
  831.   
  832. <?xml version="1.0" encoding="UTF-8"?>  
  833. <beans xmlns="http://www.springframework.org/schema/beans"  
  834.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  835.     xmlns:tx="http://www.springframework.org/schema/tx"  
  836.     xmlns:aop="http://www.springframework.org/schema/aop"  
  837.     xsi:schemaLocation="  
  838.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  839.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
  840.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  
  841.     
  842.    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  843.         <property name="driverClassName"><value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value></property>  
  844.         <property name="url"><value>jdbc:sqlserver://10.1.100.215:1433;DatabaseName=email</value></property>  
  845.         <property name="username"><value>dev</value></property>  
  846.         <property name="password"><value>12345678aA</value></property>  
  847.    </bean>  
  848.    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
  849.         <property name="dataSource"><ref local="dataSource"/></property>  
  850.         <property name="packagesToScan" value="isc.java.*" />  
  851.         <property name="hibernateProperties">  
  852.         <props>  
  853.             <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>  
  854.             <prop key="hibernate.show_sql">true</prop>  
  855.             <!--  <prop key="hibernate.hbm2ddl.auto">update</prop>-->  
  856.             <prop key="hibernate.format_sql">true</prop>  
  857.         </props>  
  858.         </property>  
  859.     </bean>      
  860.     <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->  
  861.     <tx:annotation-driven/>  
  862.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  863.         <property name="sessionFactory"><ref local="sessionFactory"/></property>  
  864.         <qualifier value="demoApp"/> <!-- 限定词 -->  
  865.     </bean>  
  866. </beans>  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值