1. 程式人生 > >WEX5中自定義Bass的Action

WEX5中自定義Bass的Action

  Wex5中除了呼叫Bass提供的Action,我們有時候還會進行一些其他的操作,這就需要我們自定義Action。

  以一個註冊的表單為例:

   1、先在UI2中設計好一個使用者註冊的表單:如圖

 註冊 的按鈕上面新增 onclick 事件 :

Model.prototype.regBtnClick = function(event){
		var nserName = this.comp('nserName').val();
		var password = this.comp('password').val();
		var repassword = this.comp('repassword').val();
		var email = this.comp('email').val();
		
		justep.Baas.sendRequest({
			  "url" : "/action/action",
             "action" : "addusers",
            "async" : false,
            "params" : {
                "userName" : nserName,
                "password" : password,
                "repassword" : repassword,
                "email" : email,
            },
            "success" : function(data) {
                  if(data.state==1){
                     alert("註冊成功!!");
                     justep.Shell.showPage({url:"$UI/testDemo/main.w"});          
                  }
            }
		});
		
	}

  2、在Bass中自定義action:

首先建立一個新的資料夾,在資料夾中建立一個新的服務,比如action.service.m;在檔案中再建立一個java類,比如ComonAction,結構如圖

在ComonAction建立一個使用者註冊的方法:

package action;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.naming.NamingException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


import com.alibaba.fastjson.JSONObject;
import com.justep.baas.action.ActionContext;
import com.justep.baas.data.DataUtils;
import com.justep.baas.data.Table;
import com.justep.baas.data.Transform;

public class ComonAction {
	
	private  static String DATASOURCE_BLSHOPAPP="mk1";
	
	public static JSONObject addusers(JSONObject params, ActionContext context) throws SQLException, NamingException {
		  
		String username=params.getString("userName");
		String password=params.getString("password");
		String email=params.getString("email");
		
	Connection conn = context.getConnection(DATASOURCE_BLSHOPAPP);
		
		try{
			
			JSONObject ret = new JSONObject();
				
			java.sql.PreparedStatement pstmt = null;
				pstmt = conn.prepareStatement("INSERT INTO t_users (UserName,Password,Email) VALUES(?,?,?)");
				pstmt.setString(1,username);
				pstmt.setString(2,password);
				pstmt.setString(3, email);
				
				pstmt.execute();
			
				ret.put("state", "1");
				return ret;
		} finally {
			conn.close();
		}		
	}
}

在action.service.m中新增新建的類: