我们可以在EL表达式中编写类似SQL IN子句(包含)的内容

时间:2015-05-29 17:11:37

标签: jsf el contains

我在下面的代码中找到了详细信息:

#{bean.value eq 'S' || bean.value eq 'C'}

我们可以使用类似SQL IN子句的东西来简化这个吗?下面的虚构示例:

#{bean.value in ('S','C')}

2 个答案:

答案 0 :(得分:1)

如果您正在使用EL 3.0(Java EE 7),那么您只需使用#{[x,y,z]}语法构建contains()并在其上执行String。如果所需的bean属性返回char(因此不是enum#{['S','C'].contains(bean.value)} ),那么这应该是:

Collection

或者,如果您只使用EL 2.2(Java EE 6),那么您必须将某些HashSet(例如contains())中的值保存为bean属性并执行{{ 1}}在它上面:

#{bean.allowedValues.contains(bean.value)}

或者如果你还没有使用EL 2.2,那么,坚持你的初始方法,或者创建一个loadCSS类似下面的东西:

#{f:contains(bean.value, bean.allowedValues)}

另见:

答案 1 :(得分:0)

AFAIK你不能。但是您可以在HashMap中保存要检查的值。 然后你可以检查

#{pageFlowScope.beanName.mapVar[bindings.Dept.attributeValue] == null}

您可以检查返回的值是否为空/空。

西特