2010-08-13 67 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