您的位置:首页 > 其它

Smartclient+demo+实例

2011-10-13 20:03 232 查看
用实例见证smartclient的厉害吧。

先貼出來圖片 炫炫!很閃吧。

建表語句:
create table supplyItem(
	itemID int primary key identity(1,1),
	itemName varchar(300),
	unitCost decimal(28,2), --55.23  
	SKU varchar(30),
	description varchar(5000),
	category varchar(128), 
	inStock varchar(30),
	units varchar(30),
	nextShipment datetime 
)

--drop table supplyCategory
create table supplyCategory(
	categoryName varchar(128) primary key,
	parentID varchar(255),  
)
demoAppJS.jsp
Jsp代碼:
<!--------------------------------------------------------------------
	整合人:舒婷  *_*
---------------------------------------------------------------------->
<HTML>
<HEAD>
<TITLE>SmartClient Demo Application</TITLE>   
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT> 
    <SCRIPT SRC=smartclient/modules/ISC_History.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_Core.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_Foundation.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_Containers.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_Grids.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_Forms.js></SCRIPT>
    <SCRIPT SRC=smartclient/modules/ISC_DataBinding.js></SCRIPT>
	<SCRIPT SRC=smartclient/modules/load_skin.js></SCRIPT>
</HEAD>

<BODY CLASS="pageBackground" STYLE="overflow:hidden">
<script src="demoAppJS.js"></script>
</BODY>
</HTML>

demoAppJS.js

isc.setAutoDraw(false);
//<isomorphic:loadDS name="supplyItem"/>
//<isomorphic:loadDS name="supplyCategory"/>
isc.DataSource.create({
		ID:"supplyCategory",
		dataFormat:"xml",
		recordXPath:"//country",
		fields:[
			{name:"categoryName",primaryKey:true},
			{foreignKey:"supplyCategory.categoryName",//这一步 不懂、??
	         hidden:true,
	         name:"parentID",
	         required:true,
	         rootValue:"root", //初始化加载parentID为root记录  如果没有设置rootValue 会出现死循环式的树
	         type:"text"
			}
		],
		operationBindings:[
		{
			operationType:"fetch",
			dataURL:"demoApp/findTreeAll.action"
		}
		]
});
isc.DataSource.create({ 
   	    ID:"supplyItem",
	    dataFormat:"xml",  //数据格式 xml格式
	    recordXPath:"//country", //--<country></country>
	    fields:[
	        //{name:"itemId",primaryKey:true},//countryCode設置為主鍵
	        {name:"itemName", title:"itemName"},
	        {name:"unitCost", title:"unitCost"},
	        {name:"SKU",title:"SKU"},
	        {name:"description",title:"description"},
	        {name:"category",title:"category"},
	        {name:"inStock",title:"inStock"},
	        {name:"nextShipment",title:"nextShipment"}
	    ],
	    operationBindings:[ 
	        {operationType:"fetch",
	         dataURL:"demoApp/findAll.action"
	         },
	        {operationType:"add"
	         //dataURL:"country/insertInfo.action"
	         },
	        {operationType:"update"
	         //dataURL:"country/updateInfo.action"
	         },
	        {operationType:"remove"
	         //dataURL:"country/deleteInfo.action"
	         }
	    ]
	});
isc.Page.setAppImgDir(isc.Page.getIsomorphicDocsDir()+"exampleImages/"); //设置img文件路径

isc.TreeGrid.create({
	ID:"categoryTree",
    dataSource:"supplyCategory",
	nodeClick:"findForm.findItems(node.categoryName)",
    showHeader:false,
    leaveScrollbarGap:false,
    animateFolders:true,
	canAcceptDroppedRecords:true,
    canReparentNodes:false,
    selectionType:"single",
    animateRowsMaxTime:750
});

isc.HTMLPane.create({
	ID:"helpCanvas",
	contentsURL:"demoApp_helpText.html",
	overflow:"auto",
    styleName:"defaultBorder",
	padding:10
});

isc.IButton.create({
	ID:"findButton",
	title:"Find",
	left:25,
	top:16,
	width:80,
	click:"findForm.findItems()",
	icon:"demoApp/icon_find.png",
	iconWidth:24
});

isc.SearchForm.create({
	ID:"findForm",
	dataSource:supplyItem,
	left:130,
    top:10,
	cellPadding:4,
	numCols:6,
	fields:[
		{name:"SKU"},
        {name:"itemName", editorType:"comboBox", optionDataSource:"supplyItem", 
        pickListWidth:250},
		{name:"findInCategory", editorType:"checkbox", 
            title:"Use category", defaultValue:true, shouldSaveValue:false}
	],
    
    // Function to actually find items
    findItems : function (categoryName) {
    	var findValues;
    
    	if (this.getValue('findInCategory') && categoryTree.selection.anySelected()) {
    		// use tree category and form values
    		if (categoryName == null) categoryName = categoryTree.getSelectedRecord().categoryName;
    		findValues = {category:categoryName};
    		isc.addProperties(findValues, this.getValues());
    		
    	} else if (categoryName == null) {
    		// use form values only
    		findValues = this.getValues();
    		
    	} else {
    		// use tree category only
    		findValues = {category:categoryName};
    	}
    	
    	itemList.filterData(findValues);
    	
    	itemDetailTabs.clearDetails();
    }
});

isc.ListGrid.create({
	ID:"itemList",
	dataSource:supplyItem,
	useAllDataSourceFields:true,
	fields:[
		{name:"itemName", title:"Name", showHover:true},
		{name:"unitCost", 
         formatCellValue:"return isc.Format.toCurrencyString(parseFloat(value))", 
         editorType:"spinner", editorProperties:{step:0.01}},
		{name:"SKU", canEdit:false},
		{name:"description", showHover:true},
		{name:"category", canEdit:false},
        {name:"inStock", width:55, align:"center",
            formatCellValue : function (value, record, field, rowNum, colNum) {
                if (value) return isc.Canvas.imgHTML("demoApp/checked.png",13,13);
                else return isc.Canvas.imgHTML("demoApp/unchecked.png",13,13)
            }},
        {name:"nextShipment", showIf:"false"}
	],
	recordClick:"this.updateDetails()",
	canEdit:true,
    modalEditing:true,
	cellChanged:"this.updateDetails()",
	alternateRecordStyles:true,
	canDragRecordsOut:true,
	hoverWidth:200,
    hoverHeight:20,
	selectionType:"single",
	cellContextClick:"return itemListMenu.showContextMenu()",
    updateDetails : function () {
        var record = this.getSelectedRecord();
        if (record == null) return itemDetailTabs.clearDetails();
        
        if (itemDetailTabs.getSelectedTabNumber() == 0) {            itemViewer.setData(record) 
        } else {
            itemDetailTabs.updateTab("editTab", editForm);
            editForm.editRecord(record);
        }
    }
});

isc.Menu.create({
	ID:"itemListMenu",
    cellHeight:22,
	data:[
        {title:"Add New Item",
			icon:"demoApp/icon_add.png",
            click:function () {
                itemList.selection.deselectAll();
                itemDetailTabs.selectTab(1);
                itemList.updateDetails();
            }
        },
        {isSeparator:true},
		{title:"Show Details",
			icon:"demoApp/icon_view.png",
			click:"itemDetailTabs.selectTab(0); itemList.updateDetails()"},
		{title:"Edit Item",
			icon:"demoApp/icon_edit.png",
			click:"itemDetailTabs.selectTab(1); itemList.updateDetails()"},
		{title:"Delete Item",
			icon:"demoApp/icon_delete.png",
			click:"itemList.removeSelectedData(); itemDetailTabs.clearDetails()"}
	]
});

isc.DetailViewer.create({
	ID:"itemViewer",
	dataSource:supplyItem,
	width:"100%",
	margin:"25",
    emptyMessage:"Select an item to view its details"
});

isc.DynamicForm.create({
	ID:"editForm",
	dataSource:supplyItem,
	useAllDataSourceFields:true,
	fields:[
		{name:"SKU"},
		{name:"description", editorType:"textArea",rowSpan:3, width:200},
		{name:"category", editorType:"pickTree", dataSource:supplyCategory, // 无法显示editform
         emptyMenuMessage:"No Sub Categories", canSelectParentItems:true},
		{name:"unitCost", editorType:"spinner", step:0.01},
        {name:"inStock"},
        {name:"nextShipment", useTextField:true,editorType:"date"},
		{name:"savebtn", editorType:"button", align:"center", 
            width:100, colSpan:4, title:"Save Item", click:"editForm.saveData()"}
	],
	width:650,
	numCols:4,
	colWidths:[100,200,100,200],
    margin:25,
	cellPadding:5,
	autoFocus:false
});

isc.Label.create({
    ID:"editorMessage",
    autoDraw: false,
    width:"100%",
    height:"100%",
    align:"center",
    contents:"Select a record to edit, or a category to insert a new record into"
});

isc.TabSet.create({
	ID:"itemDetailTabs",
	tabs:[
		{title:"View", pane:itemViewer, ID:"viewTab", width:70, icon:"demoApp/icon_view.png"},
		{title:"Edit", pane:editForm, ID:"editTab", width:70, icon:"demoApp/icon_edit.png"}
	],

	tabSelected:"itemList.updateDetails()",

    clearDetails : function () {
        var selectedTab = this.getSelectedTabNumber();
        if (selectedTab == 0) {
        	itemViewer.setData();
        } else if (selectedTab == 1) {
            if (categoryTree.getSelectedRecord() != null) {
                this.updateTab("editTab", editForm);
                editForm.editNewRecord({category:categoryTree.getSelectedRecord().categoryName});
            } else {
                this.updateTab("editTab", editorMessage);
            }
        }
    }

});
// Define application layout
// ---------------------------------------------------------------------

isc.HLayout.create({
	ID:"pageLayout",
	width:"100%",
	height:"100%",
    layoutMargin:20,
	members:[
		isc.SectionStack.create({
			ID:"leftSideLayout",
			width:280,
			showResizeBar:true,
			visibilityMode:"multiple",
            animateSections:true,
			sections:[
				{title:"Office Supply Categories", autoShow:true, items:[categoryTree]},
				{title:"Instructions", autoShow:true, items:[helpCanvas]}
			]
		}),
		isc.SectionStack.create({
			ID:"rightSideLayout",
			visibilityMode:"multiple",
            animateSections:true,
			sections:[
				{title:"Find Items", autoShow:true, items:[
					isc.Canvas.create({
						ID:"findPane",
						height:60,
						overflow:"auto",
                        styleName:"defaultBorder",
						children:[findForm,findButton]
					})				
				]},
				{title:"Office Supply Items", autoShow:true, items:[itemList]},
				{title:"Item Details", autoShow:true, items:[itemDetailTabs]}
			]
		})
	]
});

isc.Page.setEvent("load", "pageLayout.draw()");
// Custom logic: 
// When showing options in the combo-box, only show the options from the selected category
// if appropriate
findForm.getItem("itemName").addProperties({
    getPickListFilterCriteria : function () {
        var criteria = this.Super("getPickListFilterCriteria", arguments);
        if (this.form.getValue('findInCategory') && categoryTree.selection.anySelected()) {
            criteria.category = categoryTree.getSelectedRecord().categoryName;
        }
        return criteria
     }
});
 
categoryTree.fetchData();

java代碼
DAO 層
package isc.java.Dao;

import isc.java.Module.supplyItem;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class supplyItem_Dao {
	private HibernateTemplate hibernateTemplate;
	@SuppressWarnings("unused")
	@Autowired
	private void setHibernateTemplate (SessionFactory sessionFactory){
		this.hibernateTemplate =new HibernateTemplate(sessionFactory);
	}
	/*
	 * 	function findAll
	 * 	查询supplyItem表中所有记录
	 *  并以list形式返回
	 *  
	 * */
	@SuppressWarnings("unchecked")
	public List<supplyItem> findAll(String category){
		String hql="from supplyItem where category='"+category+"'";
		List list=this.hibernateTemplate.find(hql);
		return list;
	}
	/*
	 * 根据category返回对应的记录
	 * */
	@SuppressWarnings("unchecked")
	public supplyItem findInfoByID (int itemID){
		supplyItem supp=(supplyItem) this.hibernateTemplate.get(supplyItem.class, itemID);
		return supp;
	}
	/*
	 * 删除指定记录
	 * 
	 * */
	public void deleteInfo(supplyItem supp){
		this.hibernateTemplate.delete(supp);
	}
	/*
	 * 更新修改后的记录
	 * */
	public void updateInfo(supplyItem supp){
		this.hibernateTemplate.update(supp);
	}
	/*
	 *增加记录 
	 * */
	public void insertInfo(supplyItem supp){
		this.hibernateTemplate.save(supp);
	}
}

package isc.java.Dao;

import isc.java.Module.supplyCategory;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class supplyCategory_Dao {
	private HibernateTemplate hibernateTemplate;
	@SuppressWarnings("unused")
	@Autowired
	private void setHibernateTemplate (SessionFactory sessionFactory){
		this.hibernateTemplate =new HibernateTemplate(sessionFactory);
	}
	
	@SuppressWarnings("unchecked")
	public List<supplyCategory> findAll(String parentId){
		String hql="from supplyCategory where parentId='"+parentId+"'";
		List list =this.hibernateTemplate.find(hql);
		return list;
	}
}

ENTITY層
package isc.java.Module;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="supplyCategory")
public class supplyCategory {
	private String categoryName;
	private String parentId;
	@Id
	@Column(name="categoryName")
	public String getCategoryName() {
		return categoryName;
	}
	public void setCategoryName(String categoryName) {
		this.categoryName = categoryName;
	}
	@Column(name="parentId")
	public String getParentId() {
		return parentId;
	}
	public void setParentId(String parentId) {
		this.parentId = parentId;
	}
	
}

package isc.java.Module;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="supplyItem")
public class supplyItem {
	private int itemID ;
	private String itemName;
	private double unitCost;
	private String SKU;
	private String description;
	private String category;
	private String inStock;
	private String nextShipment;
	@Id
	@GeneratedValue
	@Column(name="itemID")
 	public int getItemID() {
		return itemID;
	}
	public void setItemID(int itemID) {
		this.itemID = itemID;
	}
	@Column(name="itemName")
	public String getItemName() {
		return itemName;
	}
	public void setItemName(String itemName) {
		this.itemName = itemName;
	}
	@Column(name="unitCost")
	public double getUnitCost() {
		return unitCost;
	}
	public void setUnitCost(double unitCost) {
		this.unitCost= unitCost;
	}
	@Column(name="SKU")
	public String getSKU() {
		return SKU;
	}
	public void setSKU(String sku) {
		SKU = sku;
	}
	@Column(name="description")
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	@Column(name="category")
	public String getCategory() {
		return category;
	}
	public void setCategory(String category) {
		this.category = category;
	}
	@Column(name="instock")
	public String getInStock() {
		return inStock;
	}
	public void setInStock(String inStock) {
		this.inStock = inStock;
	}
	@Column(name="nextShipment")
	public String getNextShipment() {
		return nextShipment;
	}
	public void setNextShipment(String nextShipment) {
		this.nextShipment = nextShipment;
	}

}

Service 層

package isc.java.Service;

import isc.java.Dao.supplyCategory_Dao;
import isc.java.Module.supplyCategory;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class supplyCategory_Service {
	private supplyCategory_Dao supplyCategory_dao;
	@Autowired
	public void setSupplyCategory_dao(supplyCategory_Dao supplyCategory_dao) {
		this.supplyCategory_dao = supplyCategory_dao;
	}
	@Transactional("demoApp")
	public List<supplyCategory> findAll(String parentId){
		return this.supplyCategory_dao.findAll(parentId);
	}
}

package isc.java.Service;

import isc.java.Dao.supplyItem_Dao;
import isc.java.Module.supplyItem;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class supplyItem_Service {
	private supplyItem_Dao supplyItem_dao;
	@Autowired
	public void setSupplyItem_dao(supplyItem_Dao supplyItem_dao) {
		this.supplyItem_dao = supplyItem_dao;
	}
	/* 
	 * 使用声明式事物管理
	 * 在业务方法上进行@Transactional注解 
	 * 将事物规则应用到业务逻辑中
	 * demoApp为限定词*_*
	 * */
	@Transactional("demoApp")
	public List<supplyItem> findAll(String category){
		return this.supplyItem_dao.findAll(category);
	}
	@Transactional("demoApp")
	public supplyItem findInfoByID(int itemID){
		return this.supplyItem_dao.findInfoByID(itemID);
	}
	@Transactional("demoApp")
	public void deleteInfo(int itemID){
		supplyItem supp =this.supplyItem_dao.findInfoByID(itemID);
		this.supplyItem_dao.deleteInfo(supp);
	}
	
	@Transactional("demoApp")
	public void updateInfo(supplyItem supp){
		this.supplyItem_dao.updateInfo(supp);
	}
	
	@Transactional("demoApp")
	public void insertInfo(supplyItem supp){
		this.supplyItem_dao.insertInfo(supp);
	}
}

Web層

package isc.java.Web;

import isc.java.Module.supplyCategory;
import isc.java.Service.supplyCategory_Service;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class supplyCategory_Controller {
	private supplyCategory_Service supplyCategory_service;
	@Autowired
	public void setSupplyCategory_service(
			supplyCategory_Service supplyCategory_service) {
		this.supplyCategory_service = supplyCategory_service;
	}
	@SuppressWarnings("unchecked")
	@RequestMapping(value="demoApp/findTreeAll.action")
	public void findAll(HttpServletResponse response,HttpServletRequest request){
		String parentId=request.getParameter("parentID");
		List<supplyCategory> list=this.supplyCategory_service.findAll(parentId);
		ServletOutputStream sos=null;
		try {
			sos=response.getOutputStream();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		StringBuffer sbu=new StringBuffer();
		Iterator ita=(Iterator)list.iterator();
		while(ita.hasNext()){
			supplyCategory supplycategory=(supplyCategory)ita.next();
			sbu.append("<country>");
			sbu.append("<categoryName>"+supplycategory.getCategoryName()+"</categoryName>");
			sbu.append("<parentId>"+supplycategory.getParentId()+"</parentId>");
			sbu.append("</country>");
		}
		try {
			sos.print("<?xml version='1.0' encoding='UTF-8'?><records>"+sbu.toString()+"</records>");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

package isc.java.Web;

import isc.java.Module.supplyItem;
import isc.java.Service.supplyItem_Service;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class supplyItem_Controller {
	private supplyItem_Service supplyItem_service;
	@Autowired
	public void setSupplyItem_service(supplyItem_Service supplyItem_service) {
		this.supplyItem_service = supplyItem_service;
	}
	/*
	 * 从数据库中提取数据 以xml格式存储
	 * 
	 * */
	@SuppressWarnings("unchecked")
	@RequestMapping(value="demoApp/findAll.action")
	public void findAll(HttpServletResponse response,HttpServletRequest request){
		String category=request.getParameter("category");//接受前台传过来的参数
		List<supplyItem>list =this.supplyItem_service.findAll(category);
		ServletOutputStream sos=null;
		try {
			sos = response.getOutputStream();
		} catch (IOException e) {
			e.printStackTrace();
		}
		StringBuffer sbu=new StringBuffer();
		Iterator ita = (Iterator) list.iterator();
		while(ita.hasNext()){
			 supplyItem supplyitem=(supplyItem)ita.next();
			 sbu.append("<country>");
			 sbu.append("<itemID>"+supplyitem.getItemID()+"</itemID>");
			 sbu.append("<itemName>"+supplyitem.getItemName()+"</itemName>");
			 sbu.append("<unitCost>"+supplyitem.getUnitCost()+"</unitCost>");
			 sbu.append("<SKU>"+supplyitem.getSKU()+"</SKU>");
			 sbu.append("<description>"+supplyitem.getDescription()+"</description>");
			 sbu.append("<category>"+supplyitem.getCategory()+"</category>");
			 sbu.append("<inStock>"+supplyitem.getInStock()+"</inStock>");
			 sbu.append("<nextShipment>"+supplyitem.getNextShipment()+"</nextShipment>");
			 sbu.append("</country>");
	   }
		try {
			sos.print("<?xml version='1.0' encoding='UTF-8'?><records>"+sbu.toString()+"</records>");
		} catch (IOException e) { 
			e.printStackTrace();
		}
	}
	@RequestMapping(value="demoApp/deleteInfo.action")
	public void deleteInfo(HttpServletRequest request){
		int itemID=Integer.parseInt(request.getParameter("itemID"));
System.out.println("test======================"+itemID);
		this.supplyItem_service.deleteInfo(itemID);
	}
	
	@RequestMapping(value="demoApp/updateInfo.action")
	public void updateInfo(HttpServletRequest request){
		int itemID=Integer.parseInt(request.getParameter("itemID"));
		supplyItem supp=this.supplyItem_service.findInfoByID(itemID);
		supp.setSKU(request.getParameter("SKU"));
		supp.setCategory(request.getParameter("category"));
		supp.setDescription(request.getParameter("description"));
		supp.setInStock(request.getParameter("inStock"));
		supp.setItemName(request.getParameter("itemName"));
		supp.setNextShipment(request.getParameter("nextShipment"));
		String s=request.getParameter("unitCost");
		supp.setUnitCost(Double.parseDouble(s));
		this.supplyItem_service.updateInfo(supp);
	}
	
	@RequestMapping(value="demoApp/insertInfo.action")
	public void insertInfo(HttpServletRequest request){
		supplyItem supp=new supplyItem();
		supp.setCategory(request.getParameter("category"));
		supp.setSKU(request.getParameter("SKU"));
		supp.setDescription(request.getParameter("description"));
		supp.setInStock(request.getParameter("inStock"));
		supp.setItemName(request.getParameter("itemName"));
		supp.setNextShipment(request.getParameter("nextShipment"));
		supp.setUnitCost(Double.parseDouble(request.getParameter("unitCost")));
		this.supplyItem_service.insertInfo(supp);
	}
}

Xml 

App-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
	 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<!-- Scans the classpath of this application for @Components to deploy as beans -->
	<!-- 規約所有進行掃描的類,以完成Bean創建和自動依賴注入功能 -->
	<context:component-scan base-package="isc.java.*" />  
	<!-- <context:annotation-config /> -->
	<!-- Configures the @Controller programming model -->
	<mvc:annotation-driven />
	<!-- misc -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
	    <property name="suffix" value=".action"/>
	</bean>
	
	<!-- Configures Hibernate - Database Config -->
	<import resource="db-config.xml" />
</beans>

Db-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
	 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
  
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value></property>
        <property name="url"><value>jdbc:sqlserver://10.1.100.215:1433;DatabaseName=email</value></property>
        <property name="username"><value>dev</value></property>
        <property name="password"><value>12345678aA</value></property>
   </bean>
   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource"><ref local="dataSource"/></property>
        <property name="packagesToScan" value="isc.java.*" />
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
			<!--  <prop key="hibernate.hbm2ddl.auto">update</prop>-->
			<prop key="hibernate.format_sql">true</prop>
        </props>
        </property>
    </bean>	 
	<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
	<tx:annotation-driven/>
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory"><ref local="sessionFactory"/></property>
        <qualifier value="demoApp"/> <!-- 限定词 -->
    </bean>
</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: