學成在線--1.CMS接口開發

文章目錄

    • 0.定義CMS
    • 1.CMS頁面管理
    • 2.需求分析
    • 3.模型類介紹
    • 4.定義請求及響應類型
    • 5.定義接口
    • 6.創建CMS工程結構
    • 7.Dao
      • 1)創建Dao,繼承MongoRepository
      • 2)編寫測試類
        • 分頁查詢測試
        • 添加
        • 刪除
        • 修改
    • 8.Service
    • 9.Controller
    • 10.接口開發規范

0.定義CMS

1)CMS是什么 ?
CMS (Content Management System)即內容管理系統,不同的項目對CMS的定位不同,比如:一個在線教育網站,有些公司認為CMS系統是對所有的課程資源進行管理,而在早期網站剛開始盛行時很多公司的業務是網站制作,當時對CMS的定位是創建網站,即對網站的頁面、圖片等靜態資源進行管理。
2)CMS有哪些類型?
上邊也談到每個公司對每個項目的CMS定位不同,CMS基本上分為:針對后臺數據內容的管理、針對前端頁面的管理、針對樣式風格的管理等 。比如:一個給企業做網站的公司,其CMS系統主要是網站頁面管理及樣式風格的管理。
3)本項目CMS的定位是什么?
本項目作為一個大型的在線教育平臺,對CMS系統的定位是對各各網站(子站點)頁面的管理,主要管理由于運營需要而經常變動的頁面,從而實現根據運營需要快速進行頁面開發、上線的需求。

1.CMS頁面管理

本項目要實現什么樣的功能?
1)頁面管理
管理員在后臺添加、修改、刪除頁面信息。
2)頁面預覽
管理員通過頁面預覽功能預覽頁面發布后的效果。
3)頁面發布
管理員通過頁面發布功能將頁面發布到遠程門戶服務器。頁面發布成功,用戶即可在瀏覽器瀏覽到最新發布的頁面,整個頁面添加、發布的過程由于軟件自動執行,無需人工登錄服務器操作。
在這里插入圖片描述這些頁面的管理流程是什么?
1)創建站點:
一個網站有很多子站點,比如:學成在線有主門戶、學習中心、問答系統等子站點。具體的哪個頁面是歸屬于具體的站點,所以要管理頁面,先要管理頁面所屬的站點。
2)創建模板:
頁面如何創建呢?比如電商網站的商品詳情頁面,每個頁面的內容布局、板式是相同的,不同的只是內容,這個頁面的布局、板式就是頁面模板,模板+數據就組成一個完整的頁面,最終要創建一個頁面文件需要先定義此頁面的模板,最終拿到頁面的數據再結合模板就拼裝成一個完整的頁面。
3)創建頁面:
創建頁面是指填寫頁面的基本信息,如:頁面的名稱、頁面的url地址等。
4)頁面預覽:
頁面預覽是頁面發布前的一項工作,頁面預覽使用靜態化技術根據頁面模板和數據生成頁面內容,并通過瀏覽器預覽頁面。頁面發布前進行頁面預覽的目是為了保證頁面發布后的正確性。
5)頁面發布:
使用計算機技術將頁面發送到頁面所在站點的服務器,頁面發布成功就可以通過瀏覽器來訪問了。

2.需求分析

在梳理完用戶需求后就要去定義前后端的接口,接口定義后前端和后端就可以依據接口去開發功能。

具體需求如下:
1、分頁查詢CmsPage 集合下的數據
2、根據站點Id、模板Id、頁面別名查詢頁面信息
3、接口基于Http Get請求,響應Json數據

本次定義頁面查詢接口,本接口供前端請求查詢頁面列表,支持分頁及自定義條件查詢方式。

3.模型類介紹

接口的定義離不開數據模型,根據前邊對需求的分析,整個頁面管理模塊的數據模型如下:
CmsSite:站點模型
CmsTemplate:頁面模板
CmsPage:頁面信息
在這里插入圖片描述
其中頁面信息CmsPage如下:

package com.xuecheng.framework.domain.cms;import lombok.Data;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;import java.util.Date;
import java.util.List;@Data
@ToString
@Document(collection = "cms_page")
public class CmsPage {/*** 頁面名稱、別名、訪問地址、類型(靜態/動態)、頁面模版、狀態*///站點IDprivate String siteId;//頁面ID@Idprivate String pageId;//頁面名稱private String pageName;//別名private String pageAliase;//訪問地址private String pageWebPath;//參數private String pageParameter;//物理路徑private String pagePhysicalPath;//類型(靜態/動態)private String pageType;//頁面模版private String pageTemplate;//頁面靜態化內容private String pageHtml;//狀態private String pageStatus;//創建時間private Date pageCreateTime;//模版idprivate String templateId;//參數列表private List<CmsPageParam> pageParams;//模版文件Id
//    private String templateFileId;//靜態文件Idprivate String htmlFileId;//數據Urlprivate String dataUrl;
}

屬性說明:
1、定義一個頁面需要指定頁面所屬站點
一個站點包括多個頁面,比如:學成在線的門戶站點(網站)包括了多個頁面。
2、定義一個頁面需要指定頁面使用的模板
多個頁面可以使用相同的模板,比如:商品信息模板,每個商品就是一個頁面,所有商品使用同一個商品信息模板

注解說明:
@Data、@ToString:是Lombok提供的注解。
@Document:是Spring Data mongodb提供的注解,最終CMS的開發會使用Mongodb數據庫。

4.定義請求及響應類型

定義請求模型QueryPageRequest,此模型作為查詢條件類型

package com.xuecheng.framework.domain.cms.request;import io.swagger.annotations.ApiModelProperty;
import lombok.Data;@Data
public class QueryPageRequest {//接收頁面查詢的查詢條件//站點id//站點id@ApiModelProperty("站點id")private String siteId;//頁面IDprivate String pageId;//頁面名稱private String pageName;//別名private String pageAliase;//模版idprivate String templateId;//....
}

響應結果類型,分頁查詢統一使用QueryResponseResult

package com.xuecheng.framework.model.response;import lombok.Data;
import lombok.ToString;@Data
@ToString
public class QueryResponseResult extends ResponseResult {QueryResult queryResult;public QueryResponseResult(ResultCode resultCode,QueryResult queryResult){super(resultCode);this.queryResult = queryResult;}}

5.定義接口

在Api接口工程專門定義接口,在Api工程單獨定義接口的原因如下:
1、接口集中管理
2、Api工程的接口將作為各微服務遠程調用使用。
在這里插入圖片描述
頁面查詢接口定義如下:

public interface CmsPageControllerApi {
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) ;
}

此接口編寫后會在CMS服務工程編寫Controller類實現此接口。

6.創建CMS工程結構

1)創建maven工程, CMS工程的名稱為 xc-service-manage-cms,父工程為xc-framework-parent。
pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>xc-framework-parent</artifactId><groupId>com.xuecheng</groupId><version>1.0-SNAPSHOT</version><relativePath>../xc-framework-parent/pom.xml</relativePath></parent><modelVersion>4.0.0</modelVersion><artifactId>xc-service-manage-cms</artifactId><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xc-service-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.xuecheng</groupId><artifactId>xc-framework-model</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.xuecheng</groupId><artifactId>xc-framework-utils</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.xuecheng</groupId><artifactId>xc-framework-common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies></project>

由于cms工程要連接mongodb,使用spring data mongodb操作mongodb數據庫,所以需要在在cms服務端工程添加依賴spring-boot-starter-data-mongodb。

2)創建基本的包結構:
com.xuecheng.manage_cms.config:配置類目錄,數據庫配置、MQ配置等
com.xuecheng.manage_cms.dao:dao接口目錄
com.xuecheng.manage_cms.service:service類目錄
com.xuecheng.manage_cms.web.controller:controller類目錄
在這里插入圖片描述
3)配置文件
在classpath下配置application.yml

server:port: 31001
spring:application:name: xc-service-manage-cmsdata:mongodb:uri:  mongodb://root:123@localhost:27017database: xc_cms

logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?><configuration><!--定義日志文件的存儲地址,使用絕對路徑--><property name="LOG_HOME" value="d:/logs"/><!-- Console 輸出設置 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern><charset>utf8</charset></encoder></appender><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件輸出的文件名--><fileNamePattern>${LOG_HOME}/xc.%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 異步輸出 --><appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"><!-- 不丟失日志.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日志 --><discardingThreshold>0</discardingThreshold><!-- 更改默認的隊列的深度,該值會影響性能.默認值為256 --><queueSize>512</queueSize><!-- 添加附加的appender,最多只能添加一個 --><appender-ref ref="FILE"/></appender><logger name="org.apache.ibatis.cache.decorators.LoggingCache" level="DEBUG" additivity="false"><appender-ref ref="CONSOLE"/></logger><logger name="org.springframework.boot" level="DEBUG"/><root level="info"><!--<appender-ref ref="ASYNC"/>--><appender-ref ref="FILE"/><appender-ref ref="CONSOLE"/></root>
</configuration>

4)SpringBoot 啟動類
Spring Boot應用需要創建一個應用啟動類,啟動過程中會掃描Bean并注入spring 容器
注意:此類創建在本工程com.xuecheng.manage_cms包下

package com.xuecheng.manage_cms;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;@SpringBootApplication
@EntityScan("com.xuecheng.framework.domain.cms")//掃描實體類
@ComponentScan(basePackages={"com.xuecheng.api"})//掃描接口
@ComponentScan(basePackages={"com.xuecheng.manage_cms"})//掃描本項目下的所有類
public class ManageCmsApplication {public static void main(String[] args) {SpringApplication.run(ManageCmsApplication.class,args);}
}

7.Dao

1)創建Dao,繼承MongoRepository

本項目使用Spring Data Mongodb完成Mongodb數據庫的查詢,Spring Data Mongodb提供一套快捷操作mongodb的方法。
創建Dao,繼承MongoRepository,并指定實體類型和主鍵類型。

package com.xuecheng.manage_cms.dao;import com.xuecheng.framework.domain.cms.CmsPage;
import org.springframework.data.mongodb.repository.MongoRepository;public interface CmsPageRepository extends MongoRepository<CmsPage,String> {//根據頁面名稱查詢CmsPage findByPageName(String pageName);
}

其中繼承的接口MongoRepository有以下方法:
在這里插入圖片描述

2)編寫測試類

在這里插入圖片描述
test下的包路徑與main下的包路徑保持一致。
測試程序使用@SpringBootTest和@RunWith(SpringRunner.class)注解,啟動測試類會從main下找springBoot啟
動類,加載spring容器。
測試代碼如下:

package com.xuecheng.manage_cms;
import com.xuecheng.framework.domain.cms.CmsPage;
import com.xuecheng.manage_cms.dao.CmsPageRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.*;
import org.springframework.test.context.junit4.SpringRunner;@SpringBootTest
@RunWith(SpringRunner.class)
public class CmsPageRepositoryTest {@Autowired
CmsPageRepository cmsPageRepository;}

分頁查詢測試

//分頁測試
@Test
public void testFindPage() {
int page = 0;//從0開始
int size = 10;//每頁記錄數
Pageable pageable = PageRequest.of(page,size);
Page<CmsPage> all = cmsPageRepository.findAll(pageable);
System.out.println(all);
}

添加

//添加
@Test
public void testInsert(){
//定義實體類
CmsPage cmsPage = new CmsPage();
cmsPage.setSiteId("s01");
cmsPage.setTemplateId("t01");
cmsPage.setPageName("測試頁面");
cmsPage.setPageCreateTime(new Date());
List<CmsPageParam> cmsPageParams = new ArrayList<>();
CmsPageParam cmsPageParam = new CmsPageParam();
cmsPageParam.setPageParamName("param1");
cmsPageParam.setPageParamValue("value1");
cmsPageParams.add(cmsPageParam);
cmsPage.setPageParams(cmsPageParams);
cmsPageRepository.save(cmsPage);
System.out.println(cmsPage);
}

刪除

//刪除
@Test
public void testDelete() {
cmsPageRepository.deleteById("5b17a2c511fe5e0c409e5eb3");
}

修改

/
/修改
@Test
public void testUpdate() {
Optional<CmsPage> optional = cmsPageRepository.findOne("5b17a34211fe5e2ee8c116c9");
if(optional.isPresent()){
CmsPage cmsPage = optional.get();
cmsPage.setPageName("測試頁面01");
cmsPageRepository.save(cmsPage);
}
}

關于Optional:
Optional是jdk1.8引入的類型,Optional是一個容器對象,它包括了我們需要的對象,使用isPresent方法判斷所包
含對象是否為空,isPresent方法返回false則表示Optional包含對象為空,否則可以使用get()取出對象進行操作。
Optional的優點是:
1、提醒你非空判斷。
2、將對象非空檢測標準化。

3)自定義Dao方法
同Spring Data JPA一樣Spring Data mongodb也提供自定義方法的規則,如下:
按照findByXXX,findByXXXAndYYY、countByXXXAndYYY等規則定義方法,實現查詢操作。

public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
//根據頁面名稱查詢
CmsPage findByPageName(String pageName);
//根據頁面名稱和類型查詢
CmsPage findByPageNameAndPageType(String pageName,String pageType);
//根據站點和頁面類型查詢記錄數
int countBySiteIdAndPageType(String siteId,String pageType);
//根據站點和頁面類型分頁查詢
Page<CmsPage> findBySiteIdAndPageType(String siteId,String pageType, Pageable pageable);
}

8.Service

定義頁面查詢方法,根據條件查詢暫時不實現:

package com.xuecheng.manage_cms.service;
import com.xuecheng.framework.domain.cms.CmsPage;
import com.xuecheng.framework.domain.cms.request.QueryPageRequest;
import com.xuecheng.framework.model.response.CommonCode;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.QueryResult;
import com.xuecheng.manage_cms.dao.CmsPageRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
public class PageService {
@Autowired
CmsPageRepository cmsPageRepository;
/**
* 頁面列表分頁查詢
* @param page 當前頁碼
* @param size 頁面顯示個數
* @param queryPageRequest 查詢條件
* @return 頁面列表
*/
public QueryResponseResult findList(int page,int size,QueryPageRequest queryPageRequest){if (queryPageRequest == null) {queryPageRequest = new QueryPageRequest();} if (page <= 0) {page = 1;} page = page ‐ 1;//為了適應mongodb的接口將頁碼減1if (size <= 0) {size = 20;} //分頁對象Pageable pageable = new PageRequest(page, size);//分頁查詢Page<CmsPage> all = cmsPageRepository.findAll(pageable);QueryResult<CmsPage> cmsPageQueryResult = new QueryResult<CmsPage>();cmsPageQueryResult.setList(all.getContent());cmsPageQueryResult.setTotal(all.getTotalElements());//返回結果return new QueryResponseResult(CommonCode.SUCCESS,cmsPageQueryResult);}
}

9.Controller

使用springMVC完成接口實現開發。

package com.xuecheng.manage_cms.web.controller;
import com.xuecheng.api.cms.CmsPageControllerApi;
import com.xuecheng.framework.domain.cms.request.QueryPageRequest;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.manage_cms.service.PageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class CmsPageController implements CmsPageControllerApi {
@Autowired
PageService pageService;
@Override
@GetMapping("/list/{page}/{size}")
public QueryResponseResult findList(@PathVariable("page") int page, @PathVariable("size")
int size, QueryPageRequest queryPageRequest) {
return pageService.findList(page,size,queryPageRequest);
}
}

使用瀏覽器測試
輸入:http://localhost:31001/cms/page/list/1/10 查詢第1頁,每頁顯示10條記錄。

10.接口開發規范

Api請求及響應規范
為了嚴格按照接口進行開發,提高效率,對請求及響應格式進行規范化。
1)get 請求時,采用key/value格式請求,SpringMVC可采用基本類型的變量接收,也可以采用對象接收。
2)Post請求時,可以提交form表單數據(application/x-www-form-urlencoded)和Json數據(ContentType=application/json),文件等多部件類型(multipart/form-data)三種數據格式,SpringMVC接收Json數據
使用@RequestBody注解解析請求的json數據。
3)響應結果統一信息為:是否成功、操作代碼、提示信息及自定義數據。
4)響應結果統一格式為json。

Api定義約束
Api定義使用SpringMVC來完成,由于此接口后期將作為微服務遠程調用使用,在定義接口時有如下限制:
1)@PathVariable 統一指定參數名稱,如:@PathVariable(“id”)
2)@RequestParam統一指定參數名稱,如:@RequestParam(“id”)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452294.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452294.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452294.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

django 進階

django進階 django的分頁器 基礎語法&#xff1a; View Code簡單練習&#xff1a; View Code實例應用&#xff1a; View Code自定義分頁&#xff1a; View Codeform表單系統 原生form View CodeDjango表單系統中&#xff0c;所有的表單類都作為django.forms.Form的子類創建&…

BZOJ 2440: [中山市選2011]完全平方數

Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Description 小 X 自幼就很喜歡數。但奇怪的是&#xff0c;他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此&#xff0c;他也討厭所有是完全平方數的正整數倍的…

如何減小與“大牛”的差距

為什么同樣的時間有的人可以漂亮的完成工作&#xff0c;而有些人廢了很大的力氣也沒有完成&#xff1f; 前者我們常常稱之為“大牛”&#xff0c;后者我們常常叫他們“菜鳥”。當然“大牛”都是相對而言的&#xff0c;“大牛”也不可能方方面面都非常厲害&#xff0c;換句話說大…

軟件再工程

軟件再工程是指對既存對象系統進行調查&#xff0c;并將其重構為新形式代碼的開發過程。最大限度地重用既存系統的各種資源是再工程的最重要特點之一。從軟件重用方法學來說&#xff0c;如何開發可重用軟件和如何構造采用可重用軟件的系統體系結構是兩個最關鍵問題。不過對再工…

武俠乂怎么修改服務器,武俠乂怎么操作 按鍵功能詳細介紹

武俠乂將在7月27日開啟限量測試了&#xff0c;入手前的第一件事情當然要熟悉操作按鍵了&#xff0c;下面給大家帶來的是武俠乂按鍵介紹&#xff0c;一起來看看吧。武俠乂將在7月27日開啟限量測試了&#xff0c;玩家們馬上就能體會到武俠吃雞的快感&#xff0c;除了吃雞模式外還…

RMI使用小例

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、定義一個接口&#xff08;繼承Remote&#xff09;&#xff1a; 方法要拋RemoteException。 package rmi; import java.rmi.RemoteEx…

產品經理和項目經理有哪些區別?

1.產品經理和項目經理的差異 首先&#xff0c;產品經理和項目經理的職責定義不太一樣。 產品經理是 Product Manager &#xff0c;主要是負責市場調研、用戶研究并根據用戶的需求&#xff0c;定義和設計產品&#xff0c;然后考慮產品的商業模式、運營推廣方式等。接下來去推動…

09-完整性約束

本節重點&#xff1a; not null 與 defaultuniqueprimaryauto_incrementforeign key一、介紹 約束條件與數據類型的寬度一樣&#xff0c;都是可選參數 作用&#xff1a;用于保證數據的完整性和一致性 主要分為&#xff1a; PRIMARY KEY (PK) #標識該字段為該表的主鍵&#x…

fread rb與r,wb,w的區別

在fread時&#xff0c;"rb"與"r"對某些字符作用&#xff0c;是不同的&#xff1b; 文本模式和二進制模式讀取不一樣的 文本&#xff1a;讀: 遇到回車-換行(0D 0A)&#xff0c;就會轉換為換行符0A 寫&#xff1a;遇到換行符0A&#xff0c;就會轉換為回車-換…

軟件正向工程

正向工程是通過實現語言的映射而把模型轉換為代碼的過程。正向工程也稱為革新或改造&#xff0c;這項活動不僅從現有程序中恢復設計信息&#xff0c;而且使用該信息去改變或重構現有系統&#xff0c;以提高其整體質量。 換句話說&#xff1a;一般工業產品開發是從確定預期功能…

學成在線--2.CMS前端頁面查詢開發

文章目錄0.思路總結1.創建CMS模塊的目錄架構2.創建頁面并配置路由1&#xff09;在page目錄新建page_list.vue&#xff0c;擴展名為.vue。2&#xff09;在cms的router下配置路由。3&#xff09;在base目錄下的router導入cms模塊的路由3.使用Table組件完善頁面內容4.Api調用服務器…

java.util.IdentityHashMap.entrySet()方法實例

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 entrySet() 方法是用來獲取此映射中包含的映射關系的set視圖。 聲明 以下是java.util.IdentityHashMap.entrySet()方法的聲明。 publ…

URL轉微信可識別的二維碼

jquery.qrcode.js 是一個能夠在客戶端生成矩陣二維碼QRCode 的jquery插件 &#xff0c;使用它可以很方便的在頁面上生成二維條碼。 用法&#xff1a; 1、引入jquery.qrcode.min.js <script src"jquery.min.js"></script> <script src"jquery.qrc…

javascript數組及操作方法

數組及操作方法 數組就是一組數據的集合&#xff0c;javascript中&#xff0c;數組里面的數據可以是不同類型的。 定義數組的方法 //對象的實例創建 var aList new Array(1,2,3);//直接量創建 var aList2 [1,2,3,asd];操作數組中數據的方法 1、獲取數組的長度&#xff1a;aLi…

如何創建比C語言更快的編程語言?

【CSDN編譯整理】近日&#xff0c;beza1e1上發表了一篇博客《Faster than C》&#xff0c;在Hacker News和Reddit Programming上引發了開發者們的激烈討論。現將此文編譯&#xff0c;我們一起來探討下。 單從編程語言特性來判斷&#xff0c;雖然Fortran語言也以快而著稱&#…

面向對象方法學

面向對象技術強調在軟件開發過程中面向客觀世界或問題域中的事物&#xff0c;采用人類在認識客觀世界的過程中普遍運用的思維方法&#xff0c;直觀、自然地描述客觀世界中的有關事物。 面向對象的分析方法是利用面向對象的信息建模概念&#xff0c;如實體、關系、屬性等&#x…

學成在線--3.CMS頁面管理開發(自定義條件查詢)

文章目錄0.需求分析1.服務端--Dao2.服務端--Service3.服務端--Controller4.前端1&#xff09;page_list.vue中增加查詢表單2&#xff09;page_list.vue中添加數據模型對象3&#xff09;在鉤子方法中構建siteList站點列5.Api調用1&#xff09;修改 cms.js&#xff0c;向服務端傳…

動態生成表格、隱藏表格、選中刪除任意行、jquery、輸入驗證

PS&#xff1a; 游戲公司后臺開發&#xff0c;工作模式&#xff1a;996。 于是寫博客這事也荒廢了.... 想想還是寫一點吧。 呵呵&#xff0c;請不要笑話我注釋寫這么多&#xff0c;習慣了&#xff0c;我上班寫代碼都是有注釋的。 我建兩個相似的表是為了&#xff0c;給后臺使…

安裝 PrestaShop 1.6 - 詳細的安裝指南

2019獨角獸企業重金招聘Python工程師標準>>> 詳細的安裝指南 下載和解壓 PrestaShop 程序代碼包 你可以從 PrestaShop 官方下載最新的版本&#xff0c;下載地址為&#xff1a;http://www.prestashop.com/en/download. 這里你只有一個選項&#xff0c;只能下載最新的…

tinydate.js[v0.3] 新增了字符串格式化為日期對象的函數

更新說明 加入了String類型的擴展成員 convertToDate() 可以直接將 字符串格式的日期轉換為Date對象。加入了String類型的擴展成員 convertToTimeSpan() 可以將 字符串格式的日期轉換為TimeSpan對象。修復了日期格式化為字符串的format函數中的bug。tinydate.js v0.3 Date.prot…