Velocity寫法注意

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   使用   for   


1.$Proerty與$!{Property}的區別
比如:簡單的key-value資料格式情況下a.<C_APP_NME>$Applicant_CAppNme</C_APP_NME>,不是對象,寫法正確!b.<C_APP_NME>$!{Applicant_CAppNme}</C_APP_NME>,不是對象,寫法正確,建議使用寫法! 點評:a,b這兩種寫法都行,區別是如果Applicant_CAppNme的值為空白,a寫法會將$Applicant_CAppNme文法顯示出來。所以,這種情況寫法的運用最好使用b(因為如果運算式中需要引用外部對象方法,這種就不好辦了)。另外一點區別注意,$!{}其中的!表示若名稱Applicant_CAppNme值為空白預設將值設定為空白字串,$!{#名字}表示如果#名字值為空白,將顯示為空白,$#名字表示如果#名字值為空白,將顯示運算式$#名字。所以,最好寫$!{#名字}格式! 對象資料格式情況下a.$!{app.getComponent("base").get(0).getCProdNo()},是對象,寫法正確,建議寫法!b.$app.getComponent("base").get(0).getCProdNo(),是對象,由於有多級參考關聯性也就是多次擷取值,所以此寫法擷取不到值,寫法錯誤!點評:建議採用a寫法,既然是對象,會遇到很多想得到對象某個屬性值的時候,有參考關聯性存在,所以採用a,重要一點是由於這裡是 "a對象.a對象的屬性對象b.b對象.b屬性. ...",多級參考關聯性一定要用$!{}寫法才能擷取到! a.$!{app.getComposition()},寫法正確,建議寫法!b.$!{app.getComposition()},寫法正確!c.$app.composition,寫法正確!d.$app.getComposition(),寫法正確,建議寫法!點評:意思是取app對象的composition屬性值,前提是必須有擷取此屬性值的get方法,如果你直接使用get方法去,get命名格式無所謂,但是如果是$app.composition,那get方法名一定要規範是getComposition了,也就是get屬性名稱,建議使用帶get的寫法 文法foreach情況下#foreach ($result in $app.getComponent($cvrg))a.$app.getComponent($cvrg) ,寫法正確,在foreach的情況下建議寫法,較直觀!
b.$!{app.getComponent($cvrg)} _2,寫法正確!

  2.符號"."是Velocity保留文法符號,用於對象引用時,比如$Object.property,建議命名中不要包含它Applicant_CAppNme 命名正確! Applicant.CAppNme 命名錯誤,會顯示空值! 3.文法#if判斷的字串值比較用單引號或雙引號都可以a.#if($!{MESSAGESTATUSCODE}=="1"),寫法正確!b.#if($!{MESSAGESTATUSCODE}==‘1‘),寫法正確!點評:MESSAGESTATUSCODE是key,它的值是一個字串 實戰環境下的模版: REQUEST_15.xml
<?xml version="1.0" encoding="GBK"?><!--   發送報文模板  --><PACKET type="REQUEST" version="1.0">    #set($base="PlyMain")    #set($cvrg="Cvrg")    #set($tgt="Tgt")    #set($tgts="EntTgt")    #set($applicant="Applicant")    #set($insured="Insured")    #set($bnfc="Bnfc")        <HEAD>        <REQUEST_TYPE>$!{REQUEST_TYPE}</REQUEST_TYPE>        <USER>$!{USER}</USER>        <PASSWORD>$!{PASSWORD}</PASSWORD>    </HEAD>    <BODY>        <BASE>            <!--   ZZZG1姓名  -->            <C_A2PP_NME>$!{app.getComponent($applicant).get(0).getCAppNme()}</C_A2PP_NME>            <!--  受ZG1姓名   -->            <C_BNFC_PRSN_NME>$!{app.getComponent($bnfc).get(0).getCBnfcNme()}</C_BNFC_PRSN_NME>                        <C_INSRNT_CNM>$!{app.getComponent($bnfc).get(0).getCInsuredNme()}</C_INSRNT_CNM>                        <T_RATIO_TYPE>001</T_RATIO_TYPE>                                                            <C_BSNS_TYP>19002</C_BSNS_TYP>            <C_AGRI_TYPE>0</C_AGRI_TYPE>                        <MMN_PRM>$!{app.getComponent($base).get(0).getNPrm()}</MMN_PRM>                                    <C_BU1SINESS_NO>$!{app.getComponent($base).get(0).getCBusiNo()}</C_BU1SINESS_NO>            <C_OPER_CDE>103990001</C_OPER_CDE>                            <C_APP_MOBILE>$!{app.getComponent($applicant).get(0).getCAppMobile()}</C_APP_MOBILE>             <C_AGENCY_PR1OF_ID></C_AGENCY_PR1OF_ID>            <C_SU2BBANK_NO />                        <N_C3MM_PROP></N_C3MM_PROP>        </BASE>        <TGT><!--prodduce-->            <C_YL2>$!{app.getComponent($base).get(0).getCBicNo()}</C_YL2>            #*                這裡可以輸入注釋內容            *#            #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0A27‘)                $!{TX_C_SCHOOL_NA1ME}                $!{TX_CD_COUN1TRY}                $!{TX_CD_TGT_FLD117}            #end                #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0A01‘)                $!{TX_CA_BUILD_STR}                $!{TX_CA_PROP2ERTY_ADDR}            #end                #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0B09‘ || $!{app.getComponent($base).get(0).getCProdNo()}==‘0B10‘)                $!{TX_C_HOU2SE_STR}            #end                        #if($!{app.getComponent($base).get(0).getCProdNo()}==‘06C9‘)                $!{TX_C_COU3NTRY}            #end                        #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0D19‘ || $!{app.getComponent($base).get(0).getCProdNo()}==‘0D21‘ || $!{app.getComponent($base).get(0).getCProdNo()}==‘06D5‘)                $!{TXB_C_TG4T_FLD7}                $!{TXB_P_NUM}                $!{TXB_C_YL2}            #end                    </TGT>        <AA_CUSTOMER>            <MMN_APP_AGE>$!{app.getComponent($applicant).get(0).getCAppAge()}</MMN_APP_AGE>                        <C_BNFC_NME>$!{app.getComponent($insured).get(0).getCBnfcNme()}</C_BNFC_NME>            <!--   123ZZG1與456ZZG1的關係=資助G1與456ZZD!G1關係,0627ZZ2品才有此欄位發送   --><!--            <C_APP_DRELATION>$!{app.getComponent($applicant).get(0).getCRelation()}</C_APP_DRELATION>-->            #*              這裡可以輸入注釋內容             *#            #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0Q27‘)                $!{TX_C_SUPPORT_NAME}                $!{TX_C_RELATION}            #end        </AA_CUSTOMER>        <!--t_bic_check1_rdr -->        <RDR>            ## D!ZZ3資訊,注釋內容            #foreach ($result in $app.getComponent($cvrg))            <INSRNC>                <N1_PERIOD>$!{result.getNPeriod()}</N1_PERIOD>                #*                    ZZ2品注釋內容                *#                #if($!{app.getComponent($base).get(0).getCProdNo()}==‘0D7‘)                    <C_YLA13>$!{result.getNDductRate()}</C_YLA13>                    <C_YLD20>$!{result.getCLiabScope()}</C_YLD20>                #end                            #if($!{app.getComponent($base).get(0).getCProdNo()}==‘08A1‘)                    <C_TGT_OBJ1_CDE>$!{result.getCTgtTyp()}</C_TGT_OBJ1_CDE>                #end                        </INSRNC>            #end        </RDR>    </BODY></PACKET>
View Code

 

Velocity寫法注意

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.