使用 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_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[]]>
标记,行为是相同的。
使用:<c:when test="${fn:startsWith(s_dlText, initParam.S_SHIPPING_COSTS)}">
并且您不需要在 web.xml
中添加 <![CDATA[]]>
标记
下面这段代码,如果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[]]>
标记,行为是相同的。
使用:<c:when test="${fn:startsWith(s_dlText, initParam.S_SHIPPING_COSTS)}">
并且您不需要在 web.xml
<![CDATA[]]>
标记