0

FreeMarker 言語は初めてです。私がやろうとしているのは、ソープ エンベロープを使用して http 要求を作成し、サード パーティのサーバーからデータを取得することです。そこの「エスケープシーケンス」について質問があります。

たとえば、FreeMarker に次のような変数があります。

<#assign soap_env="<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <ns7:ClientInfoHeader soapenv:mustUnderstand="0" xmlns:ns7="urn:messages.ws.rightnow.com/v1.1">
            <ns7:AppID>Run report sample</ns7:AppID>
        </ns7:ClientInfoHeader>
            <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <wsse:UsernameToken><wsse:Username>${login}</wsse:Username>
                    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">${Liu@8275?}</wsse:Password>
                </wsse:UsernameToken>
            </wsse:Security>
    </soapenv:Header> <soapenv:Body>
    <ns7:RunAnalyticsReport xmlns:ns7="urn:messages.ws.rightnow.com/v1.1">
        <ns7:AnalyticsReport xsi:type="ns4:AnalyticsReport" xmlns:ns4="urn:objects.ws.rightnow.com/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <ID id="146682" xmlns="urn:base.ws.rightnow.com/v1.1"/>
         </ns7:AnalyticsReport><ns7:Limit>1000</ns7:Limit><ns7:Start>0</ns7:Start>
    </ns7:RunAnalyticsReport> </soapenv:Body> </soapenv:Envelope> ">

すべての引用を別の形式に置き換える必要がありますか? はいの場合、例を教えてください。

4

2 に答える 2

0

のような部分を意味する場合は<#assign soap_env='<someXml someAttributes="someValue" />'>、この例でわかるように、2 つの異なる引用符 ('") を使用する必要があります。これにより、文字列リテラルの終了位置について FreeMarker が混乱することはありません。または、 のようにエスケープも使用できますが<#assign soap_env="<someXml someAttributes=\"someValue\" />">、それは醜いです。

于 2013-08-13T16:41:43.687 に答える
0
 Freemarker Escape sequence        Meaning

  \"                         Quotation mark (u0022)
  \'                         Apostrophe (a.k.a. apostrophe-quote) (u0027)
  \\                         Back slash (u005C)
  \n                         Line feed (u000A)
  \r                         Carriage return (u000D)
  \t                         Horizontal tabulation (a.k.a. tab) (u0009)
  \b                         Backspace (u0008)
  \f                         Form feed (u000C)
  \l                         Less-than sign: <
  \g                         Greater-than sign: >
 \a                          Ampersand: &
\xCode                       Character given with its hexadecimal Unicode code (UCS code)

http://freemarker.org/docs/dgui_template_exp.html

http://freemarker.org/docs/ref_directive_escape.html

于 2013-08-12T13:01:00.197 に答える