在模型視圖中進行模型管理。javascript
屬性名稱html |
描述前端 |
Schemajava |
一個模型能夠有多個schema文件,開發人員能夠經過schema文件選擇器選擇多個文件,若是手動錄入,則多個schema文件以空格分隔;文件的位置爲相對於WebContent目錄的絕對路徑。node |
schema文本git |
模型的schema文本,必須是完整的schema文件內容web |
標識spring |
模型的ID,是運行時訪問模型的重要配置json |
名稱空間後端 |
模型全部的名稱空間列表,從schema文件或schema文本中抽取 |
注意:所配置的schema文件須要同步到gforms服務器上,而且須要在運行時配置文件config.properties中配置appURL,不然會報以下錯誤:
詳細參考《GForms FAQ》文檔。
在模型樹的根節點或模型視圖的工具欄中均可以進行模型的建立:
>模型樹根節點:
>模型視圖工具欄:
模型的建立包含三種方式:
建立空模型:將建立一個只包含ID的空模型,模型下不包含任何模型實例、綁定、動做等信息。
從XML建立模型:將建立一個包含ID的模型,模型下面建立一個從XML數據所構建的模型實例。
從schema建立模型:建立一個模型,而且在模型下建立一個根據所選擇的schema構建的模型實例及schema中的數據類型綁定。
在彈出的對話框中粘貼須要建立模型的XML數據片斷,XML數據片斷能夠有根元素,也能夠沒有。
點擊「OK」後,所建立的模型位於模型樹中,並在模型下方有模型實例:
並能夠在模型實例視圖中看到instance2模型實例。
GForms設計器支持從schema建立模型:
》第一步:輸入schema文本
schema文件文本以下:
<xs:schema xmlns:my="http://commerce.example.com/payment" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://commerce.example.com/payment" elementFormDefault="qualified"> <xs:element name="payment"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:choice> <xs:element ref="my:cc" /> <xs:element ref="my:exp" /> <xs:element ref="my:expenses" /> </xs:choice> </xs:sequence> <xs:attribute name="as" type="my:paymentAs" /> </xs:complexType> </xs:element> <xs:element name="cc" type="my:cc" /> <xs:element name="exp" type="xsd:gYearMonth" /> <xs:element name="expenses" type="my:expenses" /> <xs:simpleType name="cc"> <xs:restriction base="xsd:string"> <xs:minLength value="12" /> <xs:maxLength value="19" /> <xs:pattern value="[0-9]+" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="paymentAs"> <xs:restriction base="xsd:string"> <xs:enumeration value="cash" /> <xs:enumeration value="credit" /> </xs:restriction> </xs:simpleType> <xsd:simpleType name="expenses"> <xsd:restriction base="xsd:decimal"> <xsd:fractionDigits value="2"/> </xsd:restriction> </xsd:simpleType> </xs:schema> |
第二步:選擇建立模型的元素
點擊「Finish」後,所建立的模型位於模型樹中,並在模型下方有模型實例:
能夠看到在模型下方有一個模型實例及若干個綁定,綁定的定義從schema文件中抽取元素數據類型做爲綁定的數據類型。
並能夠在模型實例視圖中看到instance2模型實例。
同時,所引入的schema內容將做爲所建立的模型的schema文本內容,請選擇「model3」,而後在屬性視圖中能夠看到:
注意:模型所引入的schema內容能夠做爲運行時數據校驗的依據,上述schema所建立的模型實例中,若是拖拽as屬性到設計器,則默認會構建一個下拉框控件,控件的兩個選項爲cash、credit;同時在運行時綁定到數據節點instance('instance2')/pay:payment/pay:cc的控件,將校驗其長度爲12。
在模型樹的模型節點右鍵菜單中能夠看到建立模型實例的功能菜單項:
模型的建立包含三種方式:
建立空模型實例:將建立一個只包含ID的空模型實例,模型實例不包含任何XML數據節點。
從XML建立模型實例:將建立一個包含ID的模型實例,模型實例下面建立一個從XML數據所構建的XML數據結構。
從schema建立模型實例:建立一個模型實例,而且在模型實例下建立一個根據所選擇的schema構建的XML數據節點結構。
在彈出的對話框中粘貼須要建立模型實例的XML數據片斷,XML數據片斷能夠有根元素,也能夠沒有。
點擊「OK」後,所建立的模型實例位於剛剛所選的模型下:
並能夠在模型實例視圖中看到instance5模型實例。
GForms設計器支持從schema建立模型實例:
第一步:輸入schema文本
schema文件文本參考「從schema建立模型」章節。
第二步:選擇建立模型的元素
點擊「Finish」後,所建立的模型位於模型樹中,並在模型下方有模型實例:
並能夠在模型實例視圖中看到instance6模型實例。
注意:所引入的schema內容不會做爲運行時數據校驗的依據,而是僅僅從schema中選擇某個的元素來構建一個模型實例,簡化模型實例建立,並不會從schema文件中讀取任何其餘約束信息,如元素數據類型等。
選擇模型樹中的某個模型實例節點,在「屬性視圖」中能夠查看或配置模型是的相關配置項,其中src配置項表示模型實例的數據來自於某個文件。
能夠在模型樹中建立綁定,綁定是對某個數據節點的各類約束定義,包括對數據節點定義其的數據類型、只讀條件、依賴條件、計算公式、約束配置等。
在模型樹的模型節點右鍵菜單中能夠看到建立綁定的功能菜單項:
新建綁定後,在模型下方出現新建的綁定,此時在「屬性視圖」中能夠對該綁定進行屬性配置,以下圖所示:
對於一個綁定,首先要定義其節點,節點能夠經過XPath編輯器編輯節點選擇的xpath表達式。
屬性名稱 |
描述 |
節點 |
綁定所定義的數據節點,xpath表達式 |
必填項約束 |
xpath表達式,計算結果爲布爾值,定義數據節點的required條件,運行時若是知足該條件則引用該綁定的數據節點的控件將展示爲必填項 |
標識 |
綁定的ID |
計算 |
xpath表達式,計算結果爲字符串,定義數據節點的計算公式,表示節點不是由用戶輸入的,而是根據公式動態計算 |
類型 |
節點的數據類型,數據類型包括xpath所定義的數據類型,幷包括當前數據模型的schema中的數據結構 |
相關性約束 |
xpath表達式,計算結果爲布爾值,定義數據節點與其餘節點的依賴關係 |
約束 |
xpath表達式,計算結果爲布爾值,定義數據節點約束條件,運行時若是知足該條件則引用該綁定的數據節點的控件將展示爲錯誤狀態 |
約束消息 |
只有定義了約束該配置才生效,這樣在運行時若是違反該綁定的約束,則會使用該約束消息提示用戶,約束消息的構建請參考格式化校驗手冊。 注意:消息列表來自於全局約束消息集合。 |
只讀 |
xpath表達式,計算結果爲布爾值,定義數據節點只讀條件,運行時若是知足該條件則引用該綁定的數據節點的控件將展示爲只讀狀態 |
瀏覽 |
xpath表達式,計算結果爲布爾值,定義數據節點瀏覽態條件,運行時若是知足該條件則引用該綁定的數據節點的控件將展示爲瀏覽狀態 |
配置提示:
l xpath表達式:既能夠手動錄入xpath表達式,也能夠經過xpath編輯器輔助建立xpath表達式。
l 子綁定:綁定下方還能夠包含綁定,用於定義父綁定的數據節點的不一樣配置項。一般不會使用到子綁定。
提交submission是GForms前端與後端服務交互的橋樑,submission的建立方式爲:在模型視圖中---》選擇模型樹---》選擇某個須要建立提交的模型—》右鍵菜單—》「提交」:
新建「提交」後,在模型下方出現新建的提交,此時在「屬性視圖」中能夠對該提交進行屬性配置,以下圖所示:
對於一個提交,必須定義資源路徑,資源路徑能夠經過xpath定義,也能夠指定一個靜態的資源路徑URL。
屬性名稱 |
描述 |
數據引用(Ref) |
綁定所定義提交所提交的數據節點,xpath表達式,可爲空 |
編碼 |
提交時系列化的數據編碼,默認爲UTF-8 |
標識 |
提交的ID,是send動做引用該標識進行動做提交 |
方法 |
配置提交的mehtod,可選的有:post、get、put、delete,默認爲post |
分隔符 |
默認爲&,當「方法」method爲get、delete時,提交的資源路徑將根據數據將進行編碼構建。 如提交的數據爲:<input3>test</input3>,資源URL爲:http://localhost:8080/test/weather,則實際提交的資源URL爲: http://localhost:8080/test/weather?input3=test |
介質類型 |
提交到後臺的請求頭Accept(方法爲get、delete時)或Content-Type(方法爲Post、put時)內容,可選的有:application/xml、text/xml、application/json、text/json、application/x-www-form-urlencoded、application/soap+xml,默認爲application/xml |
模式(mode) |
提交方式,可選的同步、異步,默認爲異步 |
目標綁定 |
xpath表達式,當提交數據返回時,須要替換的目標模型實例節點,當「替換」爲「實例」、「文本」時該配置有效,不然無效。 |
實例 |
提交數據返回時,須要替換的目標模型實例(當「替換」配置爲模型實例時有效)。注意:該配置不會對提交的數據產生任何約束,若是要提交模型下非默認模型實例到後端,則請配置ref爲那個非默認模型實例的xpath便可 |
替換 |
當提交數據返回時,處理方式:所有、實例、文本、空,默認爲所有,其中: 所有:表示響應數據將替換當前頁; 實例:表示將使用響應信息替換某個模型實例; 文本:表示將把響應信息做爲文本添加到某個模型實例節點; 無:表示不做任何處理。 |
相關性約束 |
是否須要提交relevant屬性爲false的數據節點,默認爲false,表示提交全部節點(relevant是經過配置節點的綁定relevant相關屬性) |
校驗 |
是否對提交到數據進行校驗,若是校驗失敗則提交失敗並拋出xforms-submit-error事件 |
系列化 |
XML模型實例系列化類型,,可選的有:application/xml、application/x-www-form-urlencoded、multipart/related 、multipart/form-data 、none,默認爲application/xml |
資源XPath |
提交的後端服務URL路徑,經過XPath動態從模型實例中獲取 |
資源值 |
提交的後端服務URL路徑,若是配置了「資源XPath」則運行時忽略該配置 |
soap action |
資源URL爲web服務時有用 |
配置提示:
相關性約束:若是配置爲true則表示當系列化須要提交的模型實例或模型實例節點時,將把那些配置了綁定屬性relevant的數據節點,若是計算relevant爲false,則該節點將不被系列化。
介質類型:若是後端服務依賴於所傳遞前端所發送的Accept,如spring Restfull,此時當方法爲post時,須要格外注意,須要配置replace爲instance並配置媒體類型爲合適的類型才能實現該目的。
提交能夠包含若干個動做,這些動做的事件只能爲:
xforms-submit、xforms-submit-error、xforms-submit-done,事件具體描述請參考「GForms標準事件」。
操做是GForms平臺提供的標準操做,操做建立方式爲:在模型視圖中---》選擇模型樹---》選擇某個須要建立動做的模型—》右鍵菜單—》「動做」:
GForms平臺提供的標準動做以下表:
動做 |
動做描述 |
reset |
把所選擇的模型下的全部模型實例的內容進行重置 |
rebuild |
對目標模型的全部模型實例數據結構進行重建:綁定、模型實例等,該操做將把經過XMLUtil工具所設置的節點值綁定到UI |
recalculate |
從新對目標模型全部的綁定計算器calculate配置屬性 |
revalidate |
該操做將對目標模型中的全部的模型實例進行驗證處理(包括readonly、是否必須、是否瀏覽態、合法性校驗等) |
message |
該操做將彈出一個提示信息對話框 |
setValue |
爲所選擇的模型實例目標節點設置節點內容,該操做執行後,目標數據節點的值將被更新,同時引用目標數據節點的全部控件UI將自動被更新 |
setFocus |
該操做將觸發焦點聚焦在目標控件上。 |
toggle |
使用toggle將選擇某個case page,也就說toggle操做的目標對象爲某個case page。 |
action |
action操做能夠組合多個其餘操做,從而當action的事件知足時,觸發action下的每一個操做進行執行 |
send |
發送操做將觸發某個submission執行。 |
unload |
從目標控件卸載資源,其實就是把目標控件的html元素清空,而且若是目標控件是load動做的容器,則會把subform也銷燬 |
load |
加載資源到當前頁面,該資源能夠是任何的資源,如html或另一個GForms頁面等。 |
setindex |
該操做執行的目標對象爲Repeater或Table控件,將選中目標控件的某行,行號從1開始。 |
delete |
刪除操做將從數據集合中刪除指定位置的記錄。 |
insert |
該操做把某些現有節點或目標nodeset的最後一個節點添加到目標nodeset的父節點中 |
dispatch |
用於向目標分發某個具體的事件 |
script |
調用執行javascript,包括javascript原始代碼,如alert等,同時也支持調用javascript函數。 |
建立操做後,能夠在「屬性視圖」中配置各個操做的具體配置信息:
具體每一個動做的配置請參考「GForms操做」部分具體解釋。
配置提示:
l 在模型實例樹中配置的動做將做爲全局動做,而在控件中所配置的動做則僅僅是針對某個控件的。
l action動做:是一系列動做的集合,全部子動做的事件均與action動做同樣。
在運行時,動做的執行是按順序進行的,排在前面的將先執行,靠後的後執行,在不少時候,特別是form載入時,須要請求後臺數據,而在請求執行可能須要設置一些請求參數,設置數據節點的值有兩種方式:
1)爲頁面配置xforms-init事件,並在事件中經過XML工具設置模型實例相關節點的值。
2)經過標準動做setValue設置數據節點的值,咱們推薦使用該方式,可是須要注意setValue動做的位置,應該放在send動做以前:
能夠經過動做右鍵菜單的「上移動做」、「下移動做」實現。
在模型實例樹中能夠刪除任何提交、綁定、動做、模型實例及模型:
選擇要刪除的組件,而後右鍵菜單中點擊「刪除」便可刪除組件。
www.ghpaas.com
電話: 13601178468
Email: ghpaas@163.com