1. 程式人生 > >sg-uap下關於單表操作的從前臺到後臺的開發流程

sg-uap下關於單表操作的從前臺到後臺的開發流程

      一、 先要給uap中下載開發所需要的外掛(155 plug),將sguap-server放到tomcat的webapps目錄下,然後開啟啟動tomcat;點選“Window->Preferences”,在“Plug-inDevelopment->Target Platform”中配置地址,點選“add”,再點選“next,Name欄輸入名稱,選擇“locations”,點選“add”,選擇“directory”,點選“next”,在location欄輸入SG-UAPSERVER地址:http://127.0.0.1:8082/sguap-server/environment/platform/Version2.0.0;然後uap就會檢測到155個可用的外掛可用下載,點選next進行下載,然後應用,此時,就可以用uap進行開發了。


(1)新建一個主專案uap_food 

  要在uap_food->WebContext->WEBINF->configuration->policy.xml中加入mysql_extend和下一步將要新建的模組名module_food

<module-repository id="workspace" path="F:\UAP_workspace">
        <module>module_food</module>
        <module>mysql_extend</module>
    </module-repository>

(2)新建一個模組module_food

        1.new資料庫反向建模(om)選擇之前設計好的tb_food表,按照提示一步步,就會說在model下的om中產生對 應的om模型,點選生成程式碼,

           就會在src下生成對應的後代程式碼。

        2.new介面模型(*.ui),按照提示一步步,就會說在model下的ui中產生對 應的ui模型,點選小齒輪圖示生成程式碼,就會在face目錄下生成

           對應的前端程式碼。

        二、完成上面兩步,這時就可以在瀏覽器位址列中輸入http://127.0.0.1:9000/uap_food/module_food/food/index.jsp    就會出現一個具有新建、刪除、編輯、列印 功能的一個功能頁面。然後,在實際應用中我們可能會需要各種各樣的具體功能,這時就需要我們手寫增加所需要的功能,比如我這裡想要增加一個“改變食物味道”的功能。

  (1)   先要在face下的TbFoodGridView.js中新增新增“改變味道”的按鍵,對應程式碼如下

function _init_MainToolBar(){		
		_MainToolBar = new mx.controls.ToolBar({
			id:"MainToolBar",
			height:"24",
			direction:"horizontal",
			width:"100%",
			itemAlign:"left",
			layoutConfigs:{},
			items:[
                                {id:"ChangeTasteButton",droppedDown:false,text:"改變味道",imageKey:"edit",height:"20",width:"100",useSymbol:true,onclick:me.controller._ChangeTasteButton_onclick},
				{id:"NewButton",droppedDown:false,text:"新建",imageKey:"add",height:"20",width:"60",useSymbol:true,onclick:me.controller._NewButton_onclick},
				{id:"DelButton",droppedDown:false,text:"刪除",imageKey:"delete",height:"20",width:"60",useSymbol:true,onclick:me.controller._DelButton_onclick},
				{id:"EditButton",droppedDown:false,text:"編輯",imageKey:"edit",height:"20",width:"60",useSymbol:true,onclick:me.controller._EditButton_onclick},
				{id:"ChakanButton",droppedDown:false,text:"檢視食物",imageKey:"print",height:"20",width:"100",useSymbol:true,onclick:me.controller._ChakantButton_onclick},
				{id:"PrintButton",droppedDown:false,text:"列印",imageKey:"print",height:"20",width:"60",useSymbol:true,onclick:me.controller._PrintButton_onclick}
			]
		});
		
		_HSplitArea0.addControl(_MainToolBar);
	}

(2)在對應的TbFoodGridViewController.js中新增對應的_ChangeTasteButton_onclick 方法,對應程式碼如下
/**
   * 改變味道
   */
	me._ChangeTasteButton_onclick = function(e) {
		if(dataGrid.getCheckedItems().length == 0) {
			mx.indicate("info", "請選擇一條待改變記錄。");
			return;
		}else if(dataGrid.getCheckedItems().length>1) {
			mx.indicate("info", "只能選擇一條待改變記錄。");
			return;
		}
		var primaryKey = dataGrid.entityContainer.primaryKey;
		var primaryValue = dataGrid.selection.getValue(primaryKey);
		var data = {"zjid":primaryValue};
		/*下面的food為對應的前端程式碼的場景名,rest後面跟的tbFood為對應後代程式碼src中的TbFoodController.java
		      中的@RequestMapping("/tbFood")對應的,changeTaste為 TbFoodController.java中的對應方法 */
		var client = new mx.rpc.RESTClient({baseUrl:food.mappath("~/rest/tbFood/")});
		client.get("/changeTaste",
				data,
				function(ret) {
			if(ret.successful) {
				mx.indicate("info", "修改成功");
				dataGrid.load();
				
			}else
				mx.indicate("info", "修改失敗");		
		  }
		);
	};

(3)在TbFoodController.java中加入下面的程式碼段
	/**
	 * 改變味道為美味滴
	 */
	@RequestMapping("/changeTaste")
	public @ItemResponseBody QueryResultObject changeTaste (HttpServletRequest req) { 
		String foodid = req.getParameter("zjid");
		tbfoodBizc.changeTaste(foodid);
	    return null;
    }
	

(4)在ITbFoodBizc.java中加入public void changeTaste(String foodid);

(5)在TbFoodBizc.java中加入下面的程式碼段

       /**
	 * 改變味道為美味滴
	 */
	public void changeTaste(String foodid) {
		StringBuffer sql = new StringBuffer();
		sql.append("update tb_food set ");
		sql.append("food_taste='美味滴' where ");
		sql.append("food_id=?");
		hibernateDao.executeSqlUpdate(sql.toString(),new Object[]{foodid});
	}
上面這5步就是新增一個功能的從前臺到後臺的基本流程,通過這5步就可以實現功能的新增。