如何使用fn:在JSL EL中包含不区分大小写?

时间:2012-08-01 07:03:30

标签: jsf el contains uppercase lowercase

我试图找出一个字符串是否包含另一个字符串。但是,遗憾的是,fn:contains函数区分大小写。有没有办法让它不区分大小写?

我试图将两者放在一个案例中:

fn:contains(car.color.toLowerCase(), smartBean.txt.toLowerCase()) ? 'true' : 'false'

但由于方法的括号,它没有用。我也无法在f:to-upper函数中使用f:contains

2 个答案:

答案 0 :(得分:2)

有一个fn:containsIgnoreCase()。只需使用它。

#{fn:containsIgnoreCase(car.color, smartBean.txt)}

顺便说一句,失败的toLowerCase()尝试应该按如下方式完成:

#{fn:contains(fn:toLowerCase(car.color), fn:toLowerCase(smartBean.txt))}

使用toUpperCase()同样有效:

#{fn:contains(fn:toUpperCase(car.color), fn:toUpperCase(smartBean.txt))}

也许你刚刚发了一个EL语法错误。

请注意,? 'true' : 'false'部分完全是多余的,因为函数已经返回了该部分。

答案 1 :(得分:1)

对于那些刚刚发现此问题的人,@ BalusC的答案是正确的-但结构已更改,仅见fn:大写字母,fn:小写字母-不再看到ignoreCase选项,但是如果以某种方式强制转换另一个可以比较。