2010-08-13 66 views
2

我需要在JSP中执行按位测试,但不能在我的生活中弄清楚如何使用EL来完成。如何在JSTL if语句中执行按位逻辑?

我想要做的事,如:

<c:if test="${(test & testFor) == testFor}"> 
    <h3>Test Passed</h3> 
</c:if> 

我当然可以用普通的JSP语法做到这一点:

<% if ((test & testFor) == testFor) { %> 
    <h3>Test Passed</h3> 
<% } %> 
+2

进行按位测试的EL功能确实要走的路。你可以在这里找到示例(http://stackoverflow.com/questions/3472699/jstl-fmt-library-throws-500-error-requires-sessions-enabled/3472823#3472823),[here](http:/ /stackoverflow.com/questions/2752949/jsp-2-0-seo-friendly-links-encoding/2753495#2753495)和[这里](http://stackoverflow.com/questions/2523430/hidden-features-of- JSP-的servlet/2525995#2525995)。 – BalusC 2010-08-13 12:47:47

+0

Thankyou非常感谢您的帮助BalusC,非常感谢。 – 2010-08-13 12:51:54

+0

不客气。 – BalusC 2010-08-13 16:38:55

回答

3

我觉得位运算符没有在JSTL(see here)实施

您可以实现JSTL的功能,称为bitwiseAnd(int, int)和Java代码

+0

感谢堆,非常感激。 – 2010-08-13 12:50:57

2

JSP EL不支持位运算符(仅算术,逻辑和关系运算符)。如果你想这样做,你需要将操作封装在一个java类中,并将其公开到JSP中。另外,我相信你可以编写一个自定义函数,看起来类似于fn: JSTL命名空间中的函数,但我不确定如何去做。

+0

感谢堆,非常感激,你和Bozho的答案都非常相似,但我不得不选择一个:) – 2010-08-13 12:51:26