Ошибка сравнения между строкой переменной и значением параметра контекста с использованием 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

Другие вопросы по тегам