Ошибка сравнения между строкой переменной и значением параметра контекста с использованием fn:startWith
Со следующим фрагментом кода, если s_dlText
начинается со строки "Shipping costs"
код внутри c:when
инструкция выполнена (слово "Pass1"
появится на странице результатов):
<c:choose>
<c:when test="${fn:startsWith(s_dlText, 'Shipping costs') == true}">
<br />
Pass1
<br />
</c:when>
</c:choose>
Принимая во внимание, что в следующем случае и снова, если s_dlText
начинается со строки "Shipping costs"
код внутри c:when
инструкция не выполнена (слово "Pass2"
НЕ появляется на странице результатов):
<c:choose>
<c:when test="${fn:startsWith(s_dlText, S_SHIPPING_COSTS) == true}">
<br />
Pass2
<br />
</c:when>
</c:choose>
S_SHIPPING_COSTS
объявляется следующим образом в web.xml
:
<context-param>
<param-name>S_IF_MSG_SHIPPING_COSTS</param-name>
<param-value><![CDATA[Shipping costs]]></param-value>
</context-param>
Видите ли вы, что делается неправильно? Благодарю.
ПРИМЕЧАНИЕ 1
Обратите внимание, что если я удаляю <![CDATA[]]>
разметка, поведение такое же.
1 ответ
Решение
Используйте: <c:when test="${fn:startsWith(s_dlText, initParam.S_SHIPPING_COSTS)}">
и тебе не нужно <![CDATA[]]>
разметка в вашем web.xml