前端框架和模板引擎實現(xiàn)視圖(前端界面設計框架)
本篇文章給大家談談前端框架和模板引擎實現(xiàn)視圖,以及前端界面設計框架對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、簡歷上的項目描述(JAVA)怎么寫
- 2、前端模板引擎與各種流行框架之間有什么區(qū)別?
- 3、java工程師面試時最看重的是什么?
- 4、「SpringBoot實戰(zhàn)」視圖技術-Thymeleaf
簡歷上的項目描述(JAVA)怎么寫
想要成為合格的Java程序員或工程師到底需要具備哪些專業(yè)技能,面試者在面試之前到底需要準備哪些東西呢?本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業(yè)技能。相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發(fā)者的junior都會有所幫助。
專業(yè)技能
1.熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的Java?API,包括集合框架、多線程(并發(fā)編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
2.熟悉基于JSP和Servlet的Java?Web開發(fā),對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態(tài)頁面,有使用監(jiān)聽器、過濾器等Web組??件以及MVC架構模式進行Java?Web項目開發(fā)的經驗。
3.對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日志、安全性等的管理,有使用Spring?MVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發(fā)的經驗,熟悉Spring對其他框架的整合。
4.熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯(lián)映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優(yōu)等有深入的理解。
5.熟練的使用HTML、CSS和JavaScript進行Web前端開發(fā),熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發(fā)的經驗。
6.熟悉常用的關系型數(shù)據(jù)庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數(shù)據(jù)庫編程。
7.熟悉面向對象的設計原則,對GoF設計模式和企業(yè)應用架構模式有深入的了解和實際開發(fā)的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發(fā))和DDD(領域驅動設計)的經驗。
8.熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服務器和應用服務器的使用,熟悉多種服務器整合、集群和負載均衡的配置。
9.熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和Enterprise?Architect,熟練的使用Java開發(fā)環(huán)境Eclipse和IntelliJ,熟練的使用前端開發(fā)環(huán)境WebStorm,熟練的使用軟件版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。
說明:上面羅列的這些東西并不是每一項你都要爛熟于心,根據(jù)企業(yè)招聘的具體要求可以做相應的有針對性的準備。我個人覺得前6項應該是最低要求,是作為一個Java開發(fā)者必須要具備的專業(yè)技能
項目介紹???
本系統(tǒng)是X委托Y開發(fā)的用于Z的系統(tǒng),系統(tǒng)包括A、B、C、D等模塊。系統(tǒng)使用了Java企業(yè)級開發(fā)的開源框架E以及前端技術F。表示層運用了G架構,使用H作為視圖I作為控制器并實現(xiàn)了REST風格的請求;業(yè)務邏輯層運用了J模式,并通過K實現(xiàn)事務、日志和安全性等功能,通過L實現(xiàn)緩存服務;持久層使用了M封裝CRUD操作,底層使用N實現(xiàn)數(shù)據(jù)存取。整個項目采用了P開發(fā)模型。
說明:上面的描述中,E通常指Spring(Java企業(yè)級開發(fā)的一站式選擇);F最有可能是jQuery庫及其插件或者是Bootstrap框架,當然如果要構建單頁應用(SPA)最佳的方案是前端MVC框架(如AngularJS)和JavaScript模板引擎(如HandleBars);G顯然是MVC(模型-視圖-控制),最有可能的實現(xiàn)框架是Spring?MVC,除此之外還有Struts?2、JSF以及Apache為JSF提供的MyFaces實現(xiàn),可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring?MVC中提供了作為前端控制器的DispatcherServlet;J通常是事務腳本,K應該是AOP(面向切面編程)技術,L目前廣泛使用的有memcached和Redis;M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而復雜的查詢則由MyBatis完成,此外TopLink、jOOQ也是優(yōu)秀的持久層解決方案;底層的數(shù)據(jù)存取傳統(tǒng)上是使用關系型數(shù)據(jù)庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數(shù)據(jù)時代的來臨,也可以采用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數(shù)據(jù)存取方案(如GFS、HDFS等);項目的開發(fā)模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。
項目開發(fā)流程
1.可行性分析??可行性分析報告?/?項目開發(fā)計劃書
2.需求分析??需求規(guī)格說明書
1.OOAD(用例圖、時序圖、活動圖)
2.界面原型:幫助理解需求、業(yè)務層設計時推導事務腳本
3.設計??概要設計說明書/詳細設計說明書
1.抽取業(yè)務實體(領域對象):類圖、E-R圖(概念設計階段)
2.分層架構:確定各層的技術實現(xiàn)方案(具體到使用的框架、數(shù)據(jù)庫服務器、應用服務器等)。業(yè)務層設計:事務腳本模式(事務:用戶發(fā)送一次請求就是一個事務;腳本:一個方法或一個函數(shù);事務腳本:把一次請求封裝為一個方法或一個函數(shù);事務腳本模式:一個事務開始于腳本的打開,終止于腳本的關閉)。業(yè)務層涉及的對象本有????????三種類型:事務腳本類(封裝了業(yè)務的流程)、數(shù)據(jù)訪問對象(????????????DAO,封裝了持久化操作)、數(shù)據(jù)傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關系是事務腳本類組合(聚合)數(shù)據(jù)訪問對象,這二者都依賴了數(shù)據(jù)傳輸對象
3.正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)
4.數(shù)據(jù)庫物理設計(ER圖轉換成表間關系圖、建庫和建表、使用工具插入測試數(shù)據(jù))
4.編碼?5.測試??測試報告?/?缺陷報告
1.單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。
2.集成測試:集成測試也叫組裝測試或聯(lián)合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統(tǒng)進行測試。
3.系統(tǒng)測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統(tǒng)的各種組裝測試和確認測試,系統(tǒng)測試是針對整個產品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案。
4.驗收測試:在軟件產品完成了單元測試、集成測試和系統(tǒng)測試之后,產品發(fā)布之前所進行的軟件測試活動。它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務。
5.交付和維護??用戶手冊?/?操作手冊
項目管理
版本控制:CVS/SVN/Git
自動構建:Ant/Maven/Ivy/Gradle
持續(xù)集成:Hudson/Jenkins
系統(tǒng)架構
負載均衡服務器:F5、A10
應用服務器:
HTTP服務器:Apache、NginX(HTTP、反向代理、郵件代理服務器)
Servlet容器:Tomcat、Resin
EJB容器:WildFly(JBoss?Application?Server)、GlassFish、Weblogic、Websphere?數(shù)據(jù)庫服務器:MySQL、Oracle
第三方工具(插件)應用
圖表工具:基于jQuery的圖表插件(如jQchart、Flot、Charted等)、Chart.js、Highcharts等。
報表工具:Pentaho?Reporting、iReport、DynamicReports等。
文檔處理:POI、iText等。
工作流引擎:jBPM、OpenWFE、Snaker、SWAMP等。
作業(yè)調度:Quartz、JobServer、Oddjob等。
緩存服務:EhCache、memcached、SwarmCache等。
消息隊列:Open-MQ、ZeroMQ等。
安全框架:Shiro、PicketBox等。
搜索引擎:IndexTank、Lucene、ElasticSearch等。
Ajax框架:jQuery、ExtJS、DWR等。
UI插件:EasyUI、MiniUI等。
富文本框:UEditor、CKEditor等。
面試提問
項目是為哪個公司開發(fā)的?
項目的投入是多少?
有多少人參與了項目開發(fā)?
整個團隊中,測試人員、開發(fā)人員、項目經理比例是多少?
項目開發(fā)了多長時間?
項目總的代碼量有多少?
你的代碼量有多少?
項目采用了怎樣的開發(fā)模型或開發(fā)流程?
項目的架構是怎樣的?
項目的技術選型是怎樣的?
你在項目中承擔了怎樣的職責?
是否經常開會或加班?
項目完成后有哪些收獲或是經驗教訓?
項目中最困難的部分是什么?
如何解決團隊開發(fā)時遇到的各種沖突?
明:對于沒有實際項目經驗的,可以在前程無憂、智聯(lián)招聘、拉勾網等網站上搜索招聘Java程序員的公司,找到他們的官方網站了解他們做的項目,查看項目的詳細介紹,然后嘗試完成其中一部分功能,最好請教一下高人看看自己的設計和代碼是否恰當,這樣相當于積累了一定的項目經驗。
面試時可以反問面試官的問題
我注意到你們使用了X技術,請問你們是如何解決Y問題的?
為什么你們的產品使用了X技術而不是Y技術?據(jù)我所知,X技術雖然有A、B、C等好處,但也存在D和E問題,而Y技術可以解決D和E問題。
我對您說的X技術不是太熟悉,但我感覺它是一個不錯的解決方案,您能多講講它的工作原理嗎?
你們團隊是如何進行項目規(guī)劃的?一周會有幾次例會?每周的代碼量大概是多少?
就X問題我能想到的解決方案目前就只有Y了,請問您會怎么解決這個問題?
錄用談判
要理直氣壯的提出具體的待遇要求
開出比預期稍高的價碼
不要只盯著薪水(很多公司更愿意就薪水之外的條件做出讓步)
使用最合適的方法(可以嘗試在電話或E-mail中談判待遇)
自我評價
學習能力(搞IT行業(yè)的人需要不斷的了解新的技術、工具和方法)
團隊意識(相比個人英雄主義,IT行業(yè)更倡導團隊合作)
抗壓能力(很多IT企業(yè)的工作強度相對來說還是比較大的)
自學編程,免費獲取精品IT教程以及資料,搜索:黑馬程序員
網頁鏈接
前端模板引擎與各種流行框架之間有什么區(qū)別?
我覺得現(xiàn)在的前端模塊已情已流行的框架之間還是有一定的聯(lián)系的不過現(xiàn)在框架這種東西因為比較好用吧可以套用所以還是流行框架簡單點
java工程師面試時最看重的是什么?
一、專業(yè)技能
熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括集合框架、多線程(并發(fā)編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
熟悉基于JSP和Servlet的JavaWeb開發(fā),對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態(tài)頁面,有使用監(jiān)聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發(fā)經驗。
對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日志、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發(fā)的經驗,熟悉Spring對其他框架的整合。
熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯(lián)映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優(yōu)等有深入的理解。
熟練的使用HTML、CSS和JavaScript進行Web前端開發(fā),熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發(fā)的經驗。
熟悉常用的關系型數(shù)據(jù)庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數(shù)據(jù)庫編程。
熟悉面向對象的設計原則,對GoF設計模式和企業(yè)應用架構模式有深入的了解和實際開發(fā)的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發(fā))和DDD(領域驅動設計)的經驗。
熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服務器和應用服務器的使用,熟悉多種服務器整合、集群和負載均衡的配置。
熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和Enterprise Architect,熟練的使用Java開發(fā)環(huán)境Eclipse和IntelliJ,熟練的使用前端開發(fā)環(huán)境WebStorm,熟練的使用軟件版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。
說明: ?上面羅列的這些東西并不是每一項你都要爛熟于心,根據(jù)企業(yè)招聘的具體要求可以做相應的有針對性的準備。但是前6項應該是最低要求,是作為一個Java軟件工程師必須要具備的專業(yè)技能。
二、項目經驗
項目介紹
本系統(tǒng)是X委托Y開發(fā)的用于Z的系統(tǒng),系統(tǒng)包括A、B、C、D等模塊。系統(tǒng)使用了Java企業(yè)級開發(fā)的開源框架E以及前端技術F。表示層運用了G架構,使用H作為視圖I作為控制器并實現(xiàn)了REST風格的請求;業(yè)務邏輯層運用了J模式,并通過K實現(xiàn)事務、日志和安全性等功能,通過L實現(xiàn)緩存服務;持久層使用了M封裝CRUD操作,底層使用N實現(xiàn)數(shù)據(jù)存取。整個項目采用了P開發(fā)模型。 ?說明: ?E通常指spring(Java企業(yè)級開發(fā)的一站式選擇); ?F最有可能是jQuery庫及其插件或者是Bootstrap框架,當然如果要構建單頁應用(SPA)最佳的方案是前端MVC框架(如AngularJS)和JavaScript模板引擎(如HandleBars);G顯然是MVC(模型-視圖-控制),最有可能的實現(xiàn)框架是spring MVC,除此之外還有Struts 2、JSF以及Apache為JSF提供的MyFaces實現(xiàn); ?H是JSP,JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖還可以是各種文檔或報表(如Excel和PDF等); ?I是Servlet或者自定義的控制器,他們是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet; ?J通常是事務腳本; ?K應該是AOP(面向切面編程)技術; ?L目前廣泛使用的有memcached和Redis; ?M的選擇方案很多,最有可能的是hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給hibernate來處理,而復雜的查詢則由MyBatis完成,此外TopLink、jOOQ也是優(yōu)秀的持久層解決方案; ?N底層的數(shù)據(jù)存取傳統(tǒng)上是使用關系型數(shù)據(jù)庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數(shù)據(jù)時代的來臨,也可以采用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數(shù)據(jù)存取方案(如GFS、HDFS等); ?P是項目的開發(fā)模型,可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。
項目開發(fā)流程
1、可行性分析:可行性分析報告、項目開發(fā)計劃書;
2、需求分析:需求規(guī)格說明書OOAD(用例圖、時序圖、活動圖);
界面原型:幫助理解需求、業(yè)務層設計時推導事務腳本;
3、設計:概要設計說明書、詳細設計說明書;
*抽取業(yè)務實體(領域對象):類圖、E-R圖(概念設計階段);
分層架構:確定各層的技術實現(xiàn)方案(具體到使用的框架、數(shù)據(jù)庫服務器、應用服務器等);
*業(yè)務層設計:事務腳本模式(事務:用戶發(fā)送一次請求就是一個事務;
腳本:一個方法或一個函數(shù);
*事務腳本:把一次請求封裝為一個方法或一個函數(shù);事務腳本模式:一個事務開始于腳本的打開,終止于腳本的關閉);
*業(yè)務層涉及的對象有三種類型:事務腳本類(封裝了業(yè)務的流程)、數(shù)據(jù)訪問對象(DAO,封裝了持久化操作)、數(shù)據(jù)傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關系是事務腳本類組合(聚合)數(shù)據(jù)訪問對象,這二者都依賴了數(shù)據(jù)傳輸對象正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)數(shù)據(jù)庫物理設計(ER圖轉換成表間關系圖、建庫和建表、使用工具插入測試數(shù)據(jù));
3、編碼;
4、測試:測試報告、缺陷報告;
*單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施;
*集成測試:集成測試也叫組裝測試或聯(lián)合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統(tǒng)進行測試;
*系統(tǒng)測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統(tǒng)的各種組裝測試和確認測試,系統(tǒng)測試是針對整個產品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案;
*驗收測試:在軟件產品完成了單元測試、集成測試和系統(tǒng)測試之后,產品發(fā)布之前所進行的軟件測試活動。它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務;
5、交付和維護:用戶手冊、操作手冊;
三、項目管理
版本控制:CVS/SVN/Git
自動構建:Ant/Maven/Ivy/Gradle
持續(xù)集成:Hudson/Jenkins
四、系統(tǒng)架構
負載均衡服務器:F5、A10;
應用服務器: HTTP服務器:Apache、NginX(HTTP、反向代理、郵件代理服務器);
Servlet容器:Tomcat、Resin
EJB容器:WildFly(JBoss Application Server)、GlassFish、Weblogic、Websphere;
數(shù)據(jù)庫服務器:MySQL、Eclipse、Oracle;
五、第三方工具(插件)應用
圖表工具:基于jQuery的圖表插件(如jQchart、Flot、Charted等)、Chart.js、Highcharts等。
報表工具:Pentaho Reporting、iReport、DynamicReports等。
文檔處理:POI、iText等。
工作流引擎:jBPM、OpenWFE、Snaker、SWAMP等。
作業(yè)調度:Quartz、JobServer、Oddjob等。
緩存服務:EhCache、memcached、SwarmCache等。
消息隊列:Open-MQ、ZeroMQ、ActiveMQ等。
安全框架:Shiro、PicketBox等。
搜索引擎:IndexTank、Lucene、ElasticSearch等。
Ajax框架:jQuery、ExtJS、DWR等。
UI插件:EasyUI、MiniUI等。
富文本框:UEditor、CKEditor等。
六、面試提問
項目是為哪個公司開發(fā)的?項目的投入是多少?
有多少人參與了項目開發(fā)?整個團隊中,測試人員、開發(fā)人員、項目經理比例是多少?
項目開發(fā)了多長時間?項目總的代碼量有多少?你的代碼量有多少?
項目采用了怎樣的開發(fā)模型或開發(fā)流程?項目的架構是怎樣的?項目的技術選型是怎樣的?
你在項目中擔了怎樣的職責?是否經常開會或加班?項目完成后有哪些收獲或是經驗教訓?
項目中最困難的部分是什么?如何解決團隊開發(fā)時遇到的各種沖突?
七、面試時可以反問面試官的問題
我注意到你們使用了X技術,請問你們是如何解決Y問題的?
為什么你們的產品使用了X技術而不是Y技術?據(jù)我所知,X技術雖然有A、B、C等好處,但也存在D和E問題,而Y技術可以解決D和E問題。
我對您說的X技術不是太熟悉,但我感覺它是一個不錯的解決方案,您能多講講它的工作原理嗎?
你們團隊是如何進行項目規(guī)劃的?一周會有幾次例會?每周的代碼量大概是多少?
就X問題我能想到的解決方案目前就只有Y了,請問您會怎么解決這個問題?
八、S.A.R.法則
S.A.R法則是指先描述問題的場景,然后解釋你采取的行動,最后陳述結果。
九、面談原則
聲音適中、口齒清楚、面帶微笑、個人形象精神,講禮貌。
主動跟面試官聊他感興趣的話題,讓面試官滿意。
主動的大膽的跟面試官聊自己熟悉有經驗的內容:項目、技術點等,做到揚長避短。
一定要表達自己非常想得到這個崗位,自己很愿意學習不懂的技術。
根據(jù)自己的實際水平提出合理的待遇要求。
十、自我評價
學習能力(搞IT行業(yè)的人需要不斷的了解新的技術、工具和方法)
團隊意識(相比個人英雄主義,IT行業(yè)更倡導團隊合作)
抗壓能力(很多IT企業(yè)的工作強度相對來說還是比較大的)
「SpringBoot實戰(zhàn)」視圖技術-Thymeleaf
在一個Web應用中,通常會采用MVC設計模式實現(xiàn)對應的模型、視圖和控制器,其中,視圖是用戶看到并與之交互的界面。對最初的Web應用來說,視圖是由HTML元素組成的靜態(tài)界面;而后期的Web應用更傾向于使用動態(tài)模板技術,從而實現(xiàn)前后端分離和頁面的動態(tài)數(shù)據(jù)展示。Spring Boot框架為簡化項目的整體開發(fā),提供了一些視圖技術支持,并主要推薦整合模板引擎技術實現(xiàn)前端頁面的動態(tài)化內容。本文對SpringBoot常用的Thymeleaf進行整合。
Thymeleaf是一種現(xiàn)代的基于服務器端的Java模板引擎技術,也是一個優(yōu)秀的面向Java的XML、XHTML、HTML5頁面模板,它具有豐富的標簽語言、函數(shù)和表達式,在使用Spring Boot框架進行頁面設計時,一般會選擇 Thymeleaf模板。我們在這里學習Thymeleaf 常用的標簽、表達式。
Thymeleaf標簽
使用標簽只需要加上一個命名空間就可以了。 即修改原h(huán)tml的第二行就可以了。
變量表達式${..}主要用于獲取上下文中的變量值,示例代碼如下。
這是標題
- 使用了Thymeleaf模板的變量表達式${..}用來動態(tài)獲取p標簽中的內容 - 如果當前程序沒有啟動或者當前上下文中不存在title變量,該片段會顯示標簽默認值“這是標題”; - 如果當前上下文中存在title 變量并且程序已經啟動,當前p標簽中的默認文本內容將會被tite變量的值所替換,從而達到模板引擎頁面數(shù)據(jù)動態(tài)替換的效果。
Thymeleaf為變量所在域提供了一些內置對象
結合上述內置對象的說明,假設要在Thymeleaf模板擎頁面中動態(tài)獲取當前國家信息,可以使用#locale內置對象
選擇交量表達式和變量表達式用法類似,一般用于從被選定對象而不是上下文中獲取屬性值,如果沒有選定對象,則和變量表達式一樣,示例代碼如下。
消息表達式#{..}主要用于Thymeleaf模板頁面國際化內容的動態(tài)替換和展示。使用消息表這式#{..}進行國際化設置時,還需要提供一些國際化配置文件。關于消息表達式的使用,下文寫國際化時會詳細說明。
鏈接表達式@{..}一般用于頁面跳轉或者資源的引入,在Web開發(fā)中占據(jù)著非常重要的地位,并且使用也非常頻繁。
片段表達式~{..}是一種用來將標記片段移動到模板中的方法。其中,最常見的用法是使用th:insert或th:replace 屬性插入片段
Spring Boot默認設置了靜態(tài)資源的訪問路徑,默認將/**所有訪問映射到以下目錄。
我們創(chuàng)建一個springboot項目用于本次實驗。項目名為springboot_01_thyme。java8,springboot2.6.6
創(chuàng)建一個LoginController類用于數(shù)據(jù)替換效果測試。
我們寫一個login.html進行測試。我們導入一個bootstrap的樣式到static/login里面,并且自己定義一些css。
最后我們通過訪問 可以查看效果
在resources目錄下創(chuàng)建名為i18n的文件夾,數(shù)一數(shù)這個單詞多少個字母internationalization,就知道為什么叫i18n了。
然后我們在i18n文件夾下面創(chuàng)建login.properties、 login_zh_CN.properties、 login_en_US.properties文件。
目錄結構:這個Resource Bundle 'login'時idea自動創(chuàng)建的,我們不需要管,只需要完成我們的就行。
login.properties
login_zh_CN.properties
login_en_US.properties
然后我們在配置文件application.properties里面添加代碼
我們在config包下面創(chuàng)建一個MyLocalResovel類,自定義國際化功能區(qū)域信息解析器。
這里我們基本就完成了,但是在訪問中文的時候會出現(xiàn)亂碼現(xiàn)象。
我們打開idea的file-settings-file Encodings.
將Default encoding for properties的編碼改為utf-8,同時勾選Transparentnative-to-ascii conversion
然后我們重新編寫login.properties和其他相關的
但是這種方法1只對當前項目有效。下次創(chuàng)建還是使用GBK編碼
本文我們主要了解了Thymeleaf的基本語法、標簽、表達式、基本使用、同時還實現(xiàn)了頁面登錄頁得國際化。
本文作者:hjk-airl
本文鏈接:
關于前端框架和模板引擎實現(xiàn)視圖和前端界面設計框架的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。