Vueが学生管理機能を実装

Vueが学生管理機能を実装

この記事では、学生管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次のとおりです。

困難

  • 生徒作成機能と生徒編集機能の両方で使用されるコンポーネント。それを判断および検証する方法。
  • ユーザー入力を確認し、空でないかどうかを確認します。
  • JSON データをサーバーに送信し、バックエンドが JSON データを変換します。
  • 3層アーキテクチャでは、各層の機能が分割されています
  • 注釈を使用して生徒のデータを操作する

全体的な難易度は平均的ですが、細かいポイントが多く、総合力は高いです。
たとえば、axios を使用してバックエンドに投稿を送信する場合、フォーマットを無視するのは簡単です。
フロントエンドとバックエンドのデータが相互作用する場合、データは大きいほど良いです。データが完全であればあるほど、データのパフォーマンスは強くなります。バックエンドデータを取得するときは、解凍レベルを明確に区別する必要があります。

コードの一部

js の

<スクリプト>
 アプリを新しいVue({
  el:"#アプリ",
  データ:{
   currentPage:1, //現在のページ pageSize:10, //ページあたりに表示されるレコード数 total:0, //レコードの合計数;
   list:[], //現在のページデータ //学生情報のバインディング student:{
    名前:""、
    年:""
   }
  },
  方法:{
   ページャー:関数(数値){
    this.currentPage = num;
    データの取得
   },
   getData:関数() {
    axios.post("/StudentManager/showAllServlet?currentPage=" + this.currentPage + "&pageSize=" + this.pageSize).then((resp) => {
     this.list = resp.data.datas;
     this.total = resp.data.total;
    });
   },
   追加:関数() {
    if (this.student.id === 未定義) {
     axios.post("/StudentManager/addStudentServlet", this.student).then((resp) =>{
      if (resp.data.flag){
       データの取得
      }それ以外 {
       alert("追加に失敗しました!");
      }
     });
    }それ以外 {
     axios.post("/StudentManager/updateStudentServlet", this.student).then((resp)=>{
      if (resp.data.flag){
       データの取得
      }それ以外 {
       alert("変更に失敗しました!");
      }
     });
    }
   },
   学生の削除:関数(id) {
    axios.post("/StudentManager/deleteStudentServlet?id="+id).then((resp)=>{
     if (resp.data.flag){
      データの取得
     }それ以外 {
      alert("削除に失敗しました!");
     }
    });
   },
   findById:関数 (id) {
    axios.post("/StudentManager/findByIdStudentServlet?id=" + id).then((resp)=>{
     this.student = resp.data;
    });
   }
  },
  マウント:関数() {
   データの取得
  }
 });
</スクリプト>

ページ分けされた学生情報を表示する

// サーブレット
 文字列 currentPage = request.getParameter("currentPage");
 文字列 pageSize = request.getParameter("pageSize");
 
 PageBean<Student> pageBean = showAllStudentService.showAllStudent(Integer.parseInt(currentPage), Integer.parseInt(pageSize));
 オブジェクトマッパー objectMapper = 新しいオブジェクトマッパー();
 文字列 json = objectMapper.writeValueAsString(pageBean);
 
 レスポンスの getWriter() を json に書き込みます。
// サービス
  @テスト
    @オーバーライド
    パブリック PageBean<Student> showAllStudent(int currentPage, int pageSize) {
        PageHelper.startPage(現在のページ、ページサイズ);
        SqlSession sqlSession = SqlSessionUtils.getSqlSession(false);
        StudentMapper マッパー = sqlSession.getMapper(StudentMapper.class);
        リスト<Student> students = mapper.showStudent();

        PageInfo<学生> pageInfo = 新しい PageInfo<>(学生);
        長い合計 = pageInfo.getTotal();
        ページ情報を取得します。
        PageBean<Student> pageBean = new PageBean<>(total, students, pages);
        sqlSession を閉じます。
        pageBean を返します。
    }
//ダオ
 /**
     * ホームページにはすべての生徒が表示されます* @生徒リストを返す*/
    @Select("SELECT * FROM 学生")
    リスト<学生> showStudent();

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue+Bootstrapでシンプルな学生管理システムを実現
  • 学生管理システムを実現するJavaコンソール
  • 学生管理システムのJava実装(IO版)
  • Javaで実装された学生管理システムの詳細説明
  • Vueプロジェクトの学生管理システム例の詳細説明

<<:  MySQL インデックスのカーディナリティの概念と使用例

>>:  Centos6.5 でのスーパーバイザーのアップグレード、インストール、および構成に関するチュートリアル

推薦する

HTML 挿入画像の例 (HTML 追加画像)

HTML に画像を挿入するには、画像を表示するための HTML タグが必要です。これは、img タ...

mysql 変数の使用例の分析 [システム変数、ユーザー変数]

この記事では、例を使用して MySQL 変数の使用方法を説明します。ご参考までに、詳細は以下の通りで...

Nginxはhttpリクエスト実装プロセス分析を処理する

Nginxはまず、設定ファイル内のどのserver{}ブロックを処理に使用するかを決定します。次のs...

Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...

MySQLを使用して列内の異なる値の数をカウントする例

序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...

Ubuntu 19でdockerソースをインストールできない問題を共有する

主要な Web サイトと個人的な習慣に従って、Docker ソースを追加するには次の方法を使用します...

Tomcatのデフォルトパスの設定によって発生するプロジェクトURLの競合を解決する方法の詳細な説明

序文Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。...

Node.jsがES6モジュールを処理する方法の詳細な説明

目次1. 2つのモジュールの違い2. Node.jsとの違い3. CommonJSモジュールの読み込...

Reactプロジェクトの新規作成からデプロイまでの実装例

新しいプロジェクトを始めるこの記事では主に、新規プロジェクトを0から1まで取り組むプロセスを記録し、...

スクロールバーを非表示にしながらもスクロール効果を維持する純粋な CSS (モバイルと PC)

携帯モバイル ページは Chrome および Safari とのみ互換性があればよいため、カスタム ...

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

CSS の div の下の同じ行にある複数の要素を右揃えにする

方法1:フロート:右さらに、フローティングにするとレイアウトがよりコンパクトになります(隙間がなくな...

Vue コード強調プラグインの総合的な比較と評価

目次総合的な比較アクティブの観点から機能的な観点から詳細な比較1. エース2. コードミラー3. モ...

Vueのコンポーネント値の転送から始まるオブザーバーモードの詳細な説明

目次オブザーバーパターンVue パス値最初のステップは、main.jsにバスを登録することです。 2...

Ubuntu での mysql のインストールと使用 (一般版)

Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...