從零開始構建一個spring boot + angular web應用(2)

原創(chuàng)性聲明:本文完全為筆者原創(chuàng)痒给,請尊重筆者勞動力。轉載務必注明原文地址骏全。

上一部分中苍柏,我們引入了spring-boot,此時項目的結構應該如下:


Paste_Image.png

[ps: 我更改了一下jdk的配置姜贡,換成了工作空間配置的jdk试吁。]

接著,繼續(xù)楼咳。

  • step 1
    參考我的另一篇文檔:點擊這里熄捍。參考之后,你的項目已經(jīng)引入了angularJS母怜,并已經(jīng)成功引入到index.html中余耽。此時項目結構如下:
    Paste_Image.png

bower_components中報的錯誤先忽略。此時index.html中也已經(jīng)引入了bower_components中的插件苹熏。接著要做的事情就是在index.html中引入ng-app碟贾,并創(chuàng)建angular config.js配置路由。

  • step 2
    index.html中的body標簽上添加ng-app屬性轨域,并聲明一個ui-view袱耽。如下:

    Paste_Image.png

  • step 3
    創(chuàng)建如下目錄及文件(app.jsconfig.js干发、login.html朱巨、login.jsdashboard.js枉长、dashboard.html):

![Uploading Paste_Image_958484.png . . .]

對應的內容分別如下:

  • app.js>原創(chuàng)性聲明:本文完全為筆者原創(chuàng)冀续,請尊重筆者勞動力。轉載務必注明原文地址搀暑。

經(jīng)過上半部分的一步步搭建沥阳,我們的項目中已經(jīng)集成了spring boot跨琳。下面再一步步的介紹如何把angularjs引入項目自点,并且配置一個簡單的路由、控制器以及如何使用gulp自動把下載的angular插件引入index.html脉让。

目前桂敛,我們的項目結構如下:


Paste_Image.png

[ps: 我更改了一下jdk的配置功炮,換成了工作空間配置的jdk。]

  • step 1
    參考我的另一篇文檔:點擊這里术唬。之后薪伏,你的項目已經(jīng)引入了angularJS,并已經(jīng)成功引入到index.html中粗仓。此時項目結構如下:
    Paste_Image.png

bower_components中報的錯誤先忽略嫁怀。此時index.html中也已經(jīng)引入了bower_components中的插件。接著要做的事情就是在index.html中引入ng-app借浊,并創(chuàng)建angular config.js配置路由塘淑。

  • step 2
    index.html中的body標簽上添加ng-app屬性,并聲明一個ui-view蚂斤。如下:

    Paste_Image.png

  • step 3
    創(chuàng)建如下目錄及文件(app.js存捺、config.jslogin.html曙蒸、login.js捌治、dashboard.htmldashboard.js):

    Paste_Image.png

    內容分別如下:

1.app.js

'use strict';

angular
  .module('myApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngMessages',
    'ngSanitize',
    'ngAria',
    'ngMaterial',
    'md.data.table',
    'ui.router',
    'ui.validate',
    'ui.codemirror',
    'angularMoment',
    'chart.js',
    'once',
    'angular-loading-bar',
    'angular.filter',
    'LocalStorageModule'
  ])
  .run(function($rootScope, $state, $stateParams, $window, $http, $mdDialog) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
  });

2.config.js

'use strict';

angular.module('myApp').config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/login');
  $stateProvider.state('login', {
    url : '/login',
    data : {
      authorities : [],
      title : '登錄',
    },
    views : {
      'main@' : {
        templateUrl : 'views/login.html',
        controller : 'LoginCtrl',
      }
    }
  })
  .state('index', {
    url: '/index',
    views : {
      'main@' : {
        templateUrl : 'views/dashboard.html',
        controller : 'DashboardCtrl',
      }
    }
  });
});

3.login.html

 <div layout="row" layout-align="center center">
    <md-card flex-sm="100" flex-gt-sm="60" flex-gt-md="40">
    <form name="form" novalidate ng-submit="login($event)">
        <md-card-content>
        <h2 class="md-title">用戶登錄</h2>
        <p class="error" ng-show="authenticationError">用戶登錄失敗纽窟,請檢查輸入</p>
        <div class="inset"></div>
        <md-input-container class="md-block"> <label>用戶名</label>
        <input type="text" name="username" ng-model="username" required
            md-maxlength="20" ng-pattern="/^[0-9a-zA-Z_]*$/">
        <div ng-messages="form.username.$error">
            <div ng-message="required">請輸入用戶名</div>
            <div ng-message="pattern">用戶名只能包含英文字母肖油、數(shù)字和下劃線</div>
            <div ng-message="md-maxlength">用戶名不能多于20個字符</div>
        </div>
        </md-input-container> <md-input-container class="md-block"> <label>密碼</label>
        <input type="password" name="password" ng-model="password" required
            md-maxlength="20">
        <div ng-messages="form.password.$error">
            <div ng-message="required">請輸入密碼</div>
            <div ng-message="md-maxlength">密碼不能多于20個字符</div>
        </div>
        </md-input-container> </md-card-content>
        <md-card-actions layout="row" layout-padding
            layout-align="space-between center"> <md-checkbox
            ng-model="rememberMe" class="md-primary">保持登錄</md-checkbox> <md-button
            type="submit" class="md-primary md-raised">登錄</md-button> </md-card-actions>
    </form>
    </md-card>
</div>

4.login.js

'use strice';

angular.module('myApp')
  .controller('LoginCtrl', function($scope, $state) {
    console.log('登錄頁面');
    $scope.login = function(event) {
      console.log(event);
      $state.go('index');
    }
  })

5.dashboard.html

首頁

6.dashboard.js

'use strict';

angular.module('myApp')
  .controller('DashboardCtrl', function($scope) {
    console.log('dashboard');
  })
  • step 4
    最后,不要忘了將新建的這幾個js文件手動引入到index.html中(注意不要引入的位置不要放在bower指定的位置)臂港。

運行項目: Run As-> Spring Boot App,啟動后訪問localhost:8080构韵,可以看到如下結果:

Paste_Image.png

路由跳轉到了login。接著直接點擊登錄趋艘,即可跳轉到首頁疲恢。至此,maven集成的spring boot + angular就成功搭建瓷胧!

補充:

  1. spring boot項目啟動方式也可以采取命令行啟動:mvn spring-boot:run
  2. 后端依賴的拓展显拳,直接在pom.xml中進行添加即可,maven會自動下載所需要的依賴jar包搓萧,例如:spring-security等等杂数。提供一個網(wǎng)址,用以查詢依賴jar包的坐標:點這里
  3. 前端angular插件的引入瘸洛,可以直接向bower.json中添加依賴揍移,利用bower install下載所需的插件,再利用gulp命令執(zhí)行自定義的htmltask反肋,將插件引入index.html中那伐。需要特別注意的是,使用angular的插件,引入之后罕邀,一定要在module()中將模塊注入畅形。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诉探,隨后出現(xiàn)的幾起案子日熬,更是在濱河造成了極大的恐慌,老刑警劉巖肾胯,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竖席,死亡現(xiàn)場離奇詭異,居然都是意外死亡敬肚,警方通過查閱死者的電腦和手機怕敬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘皿,“玉大人东跪,你說我怎么就攤上這事∮チ铮” “怎么了虽填?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曹动。 經(jīng)常有香客問我斋日,道長,這世上最難降的妖魔是什么墓陈? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任恶守,我火速辦了婚禮,結果婚禮上贡必,老公的妹妹穿的比我還像新娘兔港。我一直安慰自己,他們只是感情好仔拟,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布衫樊。 她就那樣靜靜地躺著,像睡著了一般利花。 火紅的嫁衣襯著肌膚如雪科侈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天炒事,我揣著相機與錄音臀栈,去河邊找鬼。 笑死挠乳,一個胖子當著我的面吹牛权薯,可吹牛的內容都是我干的姑躲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼崭闲,長吁一口氣:“原來是場噩夢啊……” “哼肋联!你這毒婦竟也來了威蕉?” 一聲冷哼從身側響起刁俭,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎韧涨,沒想到半個月后牍戚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡虑粥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年如孝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娩贷。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡第晰,死狀恐怖,靈堂內的尸體忽然破棺而出彬祖,到底是詐尸還是另有隱情茁瘦,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布储笑,位于F島的核電站甜熔,受9級特大地震影響,放射性物質發(fā)生泄漏突倍。R本人自食惡果不足惜腔稀,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羽历。 院中可真熱鬧焊虏,春花似錦、人聲如沸秕磷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跳夭。三九已至涂圆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間币叹,已是汗流浹背润歉。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颈抚,地道東北人踩衩。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓嚼鹉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驱富。 傳聞我的和親對象是個殘疾皇子锚赤,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容