創建第一個組件
第一步:
下載並運行框架
1.1:下載地址:https://github.com/moqui/moqui-framework/releases
1.2:初始化框架:
使用ant load加載---à使用ant run 運行框架。
也可以使用gradlew命令,gradlew tasks(這個命令好像是安裝gradle)
然后使用gradlew load---àgradlew run 運行框架。
1.3:訪問:
使用地址localhost:8080並點擊左下角的Join Don按鈕瀏覽演示環境。
到這里你已經安裝好了moqui,接下來進一步學習吧。
創建一個組件
Moqui依照“配置優於編碼”的原則,創建組件就是創建目錄。Moqui的組件都在:runtime/component下。(base-component)
現在我們將創建名叫tutorial的組件。
創建如下目錄結構:
添加一個界面
制作一個hello world的界面
編碼位置為:runtime/component/tutorial/screen/tutorial.xml
<screen require-authentication="false">
<widgets>
<label type="h1"text="Hello world!"/>
</widgets>
</screen>
注:screen中的require-authentication=“false”
這個屬性如果為true的話,該頁面會被要求授權,也就是出現沒有權限訪問頁面的現象。
<Widgets>標簽中的內容為界面表現的內容。
以子界面的方式掛載
將這個界面放到某個已經存在的界面的子界面中。Moqui中的URI和功能菜單都是以界面的方式驅動的。
我們使用webroot組件的界面作為根界面。(將我們的頁面作為Webroot的子界面)webroot的位置為:runtime/component/webroot
我們使用webroot下的screen/webroot/apps.xml界面作為根,在subscreens元素下添加一個subscreens-item元素,如下:
注:除了這種直接在已存在的界面中使用subscreens-item的方式掛載子界面的 方式外,還可以通過“修改數據庫記錄”的方式達到掛載子界面的目的。
主要代碼如下:
界面內嵌入內容
1:創建一個HTML文件
位置:runtime/component/tutorial/screen/tutorial/hello.html
2:在screen/tutorial.xml將HTML頁面包含。
使用<render-mode>和<text>(渲染模式為text)標簽聲明html文件。
如圖:
第二種界面子內容的方式
1:對screen設置include-child-content屬性為“true”。目的是聲明該頁面包含了子內容。
2:在widgets下創建subscreens-active元素。目的是確定界面包含子內容的位置。
注意:被包含的文件必須放在與這個界面同名的子目錄下例如:
hello.html文件放在了tutorial.xml同名的tutorial下
第二步:
創建第一個實體
一條實體就等價於數據中的一行記錄。接下來我們定義一個實體,然后使用實體門面模式去使用實體。
1:創建一個包含tutorialid和description兩個字段的xml實體文件。
位於:runtime/component/tutorial/entity/TutorialEntities.xml如圖:
添加一些數據
1:創建一個實體門面的XML文件(為實體添加數據):
runtime/component/tutorial/data/TutorialData.xml
如圖:
2:使用ant load 或者別的命令load,加載數據。
自動查找表單
在tutorial界面下添加一個子界面的XML文件。
位置:runtime/component/tutorial/screen/tutorial/FindTutorial.xml
使用URL路徑:http://localhost:8080/apps/tutorial/FindTutorial
指定查詢字段
如何按照需要展現description呢?
只需要在form-list中的auto-fields-entity之后添加field元素。
添加一個新建表單
1:在FindTutorial.xml添加一個轉換,
如圖:
這個轉換只是調用了create#Tutorial服務,然后跳轉回了當前界面。
上面的這個服務的名字由兩部分組成,動詞#名詞
動詞:create,update,store,delete.
名詞:一個有效的實體。
只要寫成這個樣子,服務門面就會認為這是一個隱式的自動實體服務。
2:添加一個按鈕,點擊后彈出一個隱藏的容器界面。
在之前創建的FindTutorial界面中,添加容器到widget元素內的form-list元素上面,這樣就會在列表表單
第三步:
自定義新增服務
上面的transition中使用了create#Tutorial(隱式自動實體服務),下面我們來手動實現一個服務。
定義一個服務,使用默認的自動實體增刪改查實現。
位置為:runtime/component/tutorial/service/tutorial/TutorialServices.xml
Groovy服務
你也可以使用Groovy腳本實現服務可以如下操作:
注意:這里服務的Type為script,並且使用location指定腳本的位置。
Location后的資源路徑在下一章中介紹
Groovy腳本內容:
EntityValuetutorial = ec.entity.makeValue("Tutorial")
tutorial.setAll(context)
if (!tutorial.tutorialId) tutorial.setSequencedIdPrimary()
tutorial.create()
使用Groovy語言時你會用到Moqui中的ExecutionContext類。可以查詢Moqui官方提供的API查詢用法:
官網文檔位置為:
http://www.moqui.org/javadoc/index.html