后臺的數據準備好后,現在可以進行后臺開發了。
參考地址:
[https://github.com/yeoman/generator-angular](https://github.com/yeoman/generator-angular)
使用gitbash進入app文件夾,并按以下提示執行:
> 新建路由:yo angular:route login
系統將自動創建三個文件,1個控制器,1個測試文件,1個V層文件。并為我們在index.html中,引入剛剛創建的login.js文件,同時,在app.js中,自動增加一條路由。
```
panjiedeMacBook-Pro:app panjie$ yo angular:route login
invoke angular:controller:/usr/local/lib/node_modules/generator-angular/route/index.js
create app/scripts/controllers/login.js
create test/spec/controllers/login.js
invoke angular:view:/usr/local/lib/node_modules/generator-angular/route/index.js
create app/views/login.html
```
# V層
```
<form ng-submit="submit()">
<label>用戶名:<input type="text" ng-model="username"></label>
<label>密碼:<input type="password" ng-model="password"></label>
<button type="submit">submit</button>
</form>
```
# C層
```
'use strict';
/**
* @ngdoc function
* @name webAppApp.controller:LoginCtrl
* @description
* # LoginCtrl
* Controller of the webAppApp
*/
angular.module('webAppApp')
.controller('LoginCtrl', function($scope) {
$scope.username = ''; // 用戶名
$scope.password = ''; // 密碼
// 提交表單
var submit = function () {
console.log($scope.username);
console.log($scope.password);
console.log('submit');
};
$scope.submit = submit;
});
```
# M層
我們還是按照yo angular的教程,來定制M層。
> 新建service: yo angular:service user
```
panjiedeMacBook-Pro:app panjie$ yo angular:service user
create app/scripts/services/user.js
create test/spec/services/user.js
```
app/scripts/services/user.js
```
'use strict';
/**
* @ngdoc service
* @name webAppApp.user
* @description
* # user
* Service in the webAppApp.
*/
angular.module('webAppApp')
.service('user', function($http) {
var login = function(username, password, callback) {
var data = {};
$http({
method: 'POST',
url: 'http://127.0.0.1:8080/javaee/User_login',
data: {
username: username,
password: password
},
header: {
contentType: 'application/json',
}
}).then(function successCallback(response) {
console.log(response);
data = response.data;
// 網絡發生錯誤
}, function errorCallback(response) {
console.log('error callback');
console.log(response);
}).
// 發生異常
catch(function(e) {
console.log('Error: ', e);
throw e;
}).finally(function() {
// 調用回調函數, 返回教師數組
callback(data.isPassed);
});
};
return {
login: login
};
});
```
# C與M對接
```
'use strict';
/**
* @ngdoc function
* @name webAppApp.controller:LoginCtrl
* @description
* # LoginCtrl
* Controller of the webAppApp
*/
angular.module('webAppApp')
.controller('LoginCtrl', function($scope, user, $location) {
$scope.username = ''; // 用戶名
$scope.password = ''; // 密碼
// 提交表單
var submit = function () {
user.login($scope.username, $scope.password, function(isPassed) {
if (isPassed === true) {
console.log('登錄成功');
// 跳轉至首頁
$location.path('/');
} else {
console.log('登錄失敗');
}
});
};
$scope.submit = submit;
});
```
最后,我們進行集成測試。

> git checkout -f step11.5
- README
- 第一章:準備
- 第二章:Hello World!
- 第一節:查看工程文件
- 第二節:JDK、JRE與環境變量
- 第三節:index.jsp
- 第三章:Hello Struts
- 第一節:Web.xml
- 第二節:單入口
- 第三節:Hello Struts
- 第四節:觸發C層
- 第四章:建立數據表
- 第一節:建立實體類
- 第二節:測試一
- 第三節:測試二
- 第四節:引入Hibernate
- 第五節:配置Hibernate
- 第六節:建立連接
- 第七節:實體類映射數據表
- 第八節:完善數據表
- 第五章:教師管理
- 第一節:增加數據--add
- 第二節:增加數據--save
- 1 獲取傳入數據數據
- 2 數據寫入測試
- 3 對接C層
- 第三節:數據列表
- 1 獲取數據
- 2 重構代碼
- 3 C層對接--初始化
- 4 C層添加數據
- 5 V層顯示數據
- 6 獲取數據庫中數據
- 7 顯示性別
- 8 分頁
- 9 條件查詢
- 第四節:修改數據
- 1 edit
- 2 update
- 第五節:刪除數據
- 第六節:總結
- 第六章:重構C層
- 第一節:繼承ActionSupport類
- 第二節:數據驗證
- 第七章:前臺分離(前臺)
- 第一節:環境搭建
- 第二節:運行環境
- 第三節:共享開發環境
- 第四節:生產環境
- 第八章:前臺開發(前臺)
- 第一節:本地化
- 第二節:教師列表
- 1 引入M層
- 2 模擬后臺返回數據
- 3 C與M對接
- 4 C與V對接
- 第九章:前后臺對接(前后臺)
- 第一節:后臺輸出json(后臺)
- 第二節:對接前臺(全棧)
- 第二節:對接API(前臺)
- 第二節:跨域請求(后臺)
- 第三節:重構代碼(前臺)
- 第十章:重構后臺M層
- 第一節:數據訪問DAO層
- 第二節:項目整體重構
- 第十一章:用戶登陸(前后臺)
- 第一節:制定規范
- 第二節:定制測試用例
- 第三節:后臺輸入測試代碼(后臺)
- 第四節:postman(后臺)
- 第五節:新建用戶登陸模塊(前臺)
- 第六節:代碼重構(前臺)
- 第十二章:班級管理(前后臺)
- 第一節:班級列表
- 1 原型開發
- 2 制定規范
- 3 后臺對接開發
- 4 前臺對接開發
- 第二節:Add
- 1 原型開發
- 2 制定規范
- 3 后臺對接開發
- 4 前臺對接開發
- 第三節:Save
- 1 制定規范
- 2 后臺對接開發
- 3 前臺對接開發
- 第四節:Edit
- 1 原型開發
- 2 制定規范
- 3 后臺對接開發
- 4 前臺對接開發
- 第五節:Update
- 1 制定規范
- 2 后臺對接開發
- 3 前臺對接開發
- 第六節:Delete
- 1 制定規范
- 2 后臺對接開發
- 3 前臺對接開發
- 第七節:小結
- 第十三章:班級管理(API)
- 第一節:ER圖
- 第二節:create
- 1 實體層
- 2 dao層
- 3 service(server)層
- 4 action層
- 第三節:ManyToOne
- 第四節:Read
- 1 service(server)層
- 2 action層
- 第五節:update
- 1 service(server)層
- 2 action層
- 第六節:update
- 第十四章:重構服務層