使用 fn:startsWith 的变量字符串和上下文参数值之间的比较失败

Comparison failure between a variable string and a context param value using fn:startsWith

下面这段代码,如果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_COSTSweb.xml中声明如下:

<context-param>
  <param-name>S_IF_MSG_SHIPPING_COSTS</param-name>
  <param-value><![CDATA[Shipping costs]]></param-value>
</context-param>

您看到哪些地方做得不对吗?谢谢。

注 1

请注意,如果我删除 <![CDATA[]]> 标记,行为是相同的。

使用:<c:when test="${fn:startsWith(s_dlText, initParam.S_SHIPPING_COSTS)}"> 并且您不需要在 web.xml

中添加 <![CDATA[]]> 标记