2017-02-20 19 views
0

ЗаголовокВставить TagLib в теге привязки в JSP для вызова различных сервлетов

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

// Параметры в меню бар-

 <a href="#" data-toggle="modal" data-target="#login-modal"<c:set var="role" value="admin" scope="session" />>Log in as Administrator</a> 
     <a href="#" data-toggle="modal" data-target="#login-modal"<c:set var="role" value="user" scope="session" />>Log in as User</a> 

// выберите сервлет в зависимости от заданного значения

<c:choose> 
    <c:when test="{role == 'admin'}"> 
    <div> 

<button type="submit" class="btn btn-primary btn-lg btn-block" onclick="window.location.href='AdminServlet.java'">Login</button> 
</div> 
</c:when> 
<c:otherwise> 
<div> 
<button type="submit" class="btn btn-primary btn-lg btn-block" onclick="window.location.href='UserServlet.java'">Login</button> 
</div> 
</c:otherwise> 
         </c:choose> 

Просьба предложить, как я могу использовать теги taglib, как указано выше, для вызова сервлетов в зависимости от установленных значений. ,

ответ

0

Этот кусок кода <c:set var="role" value="admin" scope="session" /> просто установив переменную, не печатая его в реальной HTML, чтобы напечатать его, вы должны использовать либо c:out или просто ${role} после установки его

Также вы забыли $ в <c:when test="{role == 'admin'}">, так это должен быть <c:when test="${role == 'admin'}">

0

Предполагая, что вы пытаетесь загрузить iframe в модель, где отображается опция входа. Модель будет загружена при нажатии на один из элементов привязки (один для администратора и другой для обычного пользователя).

Установка набора c: изнутри якоря не работает как привязка - компонент на стороне клиента, а c: set вычисляется в сервера.

Вместо этого используйте новый JSP в качестве HREF якоря и передать выбор роли пользователя в качестве параметра следующего

<a href="#" data-toggle="modal" data-target="#login-modal" href="/loginPage.jsp?role=admin">Log in as Administrator</a> 
<a href="#" data-toggle="modal" data-target="#login-modal" href="/loginPage.jsp?role=user" >Log in as User</a> 

Теперь в вашем loginpage.jsp определить кнопку следующим образом -

<c:choose> 
<c:when test="${role == 'admin'}"> 
    <c:set var="action" value ="/adminLogin" /> 
<c:otherwise> 

</c:otherwise> 
    <c:set var="action" value ="/userLogin" /> 
</c:otherwise> 
</c:choose> 
<form action="${ action}"> 
    <input type="submit" value="Login" /> 
</form> 

Примечание: вам необходимо указать отображение URL-адресов в web.xml для/userLogin и/adminLogin для сопоставления с соответствующими сервлетами