2013-10-26 3 views
0

У меня возникли проблемы с написанием условия if-then-else для моей страницы jsp. Я думаю, что проблема связана с моими цитатами. Также возможно использовать JSTL в javascript?Атрибут JSTL if-then-else

Код

<c:choose> 
    <c:when test= "'<%=request.getSession().getAttribute("userName")%>' == Guest"> 
     <button class="btn" id="getCitizens" onclick="DoGuestAccess()" type="button">Guest Access</button> 
    </c:when> 
    <c:otherwise> 
     <button class="btn" id="getCitizens" onclick="DoUsersAccess()" type="button">User Access</button> 
    </c:otherwise> 
</c:choose> 

Ошибка

org.apache.jasper.JasperException: /WEB-INF/jsp/newpage.jsp (line: 485, column: 71) equal symbol expected 
+1

нет это не так. JSTL можно интерпретировать только на стороне сервера. – Farid

+0

поэтому я должен передать значение JSTL в элемент html, а затем использовать javascript для получения значения из элемента для условия? – devdar

+0

JSTL можно использовать для визуализации * JavaScript. –

ответ

2

Это выглядит как проблема с выражением тест, попробуйте следующее:

<c:choose> 
    <c:when test= "${request.getSession().getAttribute("userName").equals("Guest")}"> 
     <button class="btn" id="getCitizens" onclick="DoGuestAccess()" type="button">Guest Access</button> 
    </c:when> 
<c:otherwise> 
    <button class="btn" id="getCitizens" onclick="DoUsersAccess()" type="button">User Access</button> 
</c:otherwise> 

Кроме того, Java использует метод equals для сравнения строк.

Или более многословен:

<% var userName = request.getSession().getAttribute("userName"); %> 
<c:choose> 
    <c:when test= "${userName.equals("Guest")}"> 
     <button class="btn" id="getCitizens" onclick="DoGuestAccess()" type="button">Guest Access</button> 
    </c:when> 
<c:otherwise> 
    <button class="btn" id="getCitizens" onclick="DoUsersAccess()" type="button">User Access</button> 
</c:otherwise> 

+0

«$ {userName.equals ('Guest')}« работал для меня – devdar

+1

Да, '$ {..}' важен, не уверен в кавычках, иногда экранирование помогает: «$ {userName.equals (\ Гость \ ")}". Одиночные кавычки используются для символов в java, но если он работает, он работает ... –

Смежные вопросы