0

Spring-EL 式で使用できるように、次の Java コードをどのようにエスケープすればよいですか?

ジャワ:

.replaceAll("[\\p{Punct}&&[^\"|\\]|\\[|+|\\-|:|(|)|_|~|.|,|%|?]]", " ")

解析しない Spring-EL:

<int:transformer 
    input-channel="splitTitles" 
    output-channel="lowercasedTitles" 
    expression="payload.toLowerCase().replaceAll('[\\p{Punct}&&[^\"|\\]|\\[|+|\\-|:|(|)|_|~|.|,|%|?]]').trim()">
</int:transformer>
4

1 に答える 1

0

XML ベースのファイルで属性値を指定するときは、特殊文字 (つまり & = &amp;、 " = &quot;) をエスケープする必要があります。また、replaceAll メソッド呼び出しに 2 番目のパラメーターを指定していません。これを試してください。

<int:transformer 
        input-channel="splitTitles" 
        output-channel="lowercasedTitles" 
        expression="payload.toLowerCase().replaceAll('[\\p{Punct}&amp;&amp;[^\&quot;|\\]|\\[|+|\\-|:|(|)|_|~|.|,|%|?]]', ' ').trim()">
    </int:transformer>
于 2012-07-23T12:37:16.887 に答える