2010-08-13 3 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), [здесь] (http: /stackoverflow.com/questions/2752949/jsp-2-0-seo-friendly-links-encoding/2753495#2753495) и [здесь] (http://stackoverflow.com/questions/2523430/hidden-features-of- JSP-сервлет/2525995 # 2525995). – BalusC

+0

Большое спасибо за помощь BalusC, очень ценю. –

+0

добро пожаловать. – BalusC

ответ

3

Я думаю, что битовые операторы не реализованы в JSTL (see here)

Вы можете реализовать функцию JSTL, называется bitwiseAnd(int, int) и выполнить тест побитового в Java коде

+0

Спасибо, куча, очень благодарен. –

2

JSP EL не поддерживает битовые операторы (только арифметических, логических и реляционные операторы). Если вы хотите это сделать, вам нужно инкапсулировать операции в классе java и выставить это в JSP. В качестве альтернативы, я считаю, что вы можете написать пользовательскую функцию, которая будет похожа на таковую в пространстве имен JSTL , но я не уверен, как это сделать.

+0

Спасибо за кучи, очень благодарен, и ваши ответы и ответы Божо были очень похожи, но я должен был выбрать один :) –