标题
<%@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>
//根据设定值选择一个servlet
<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标签来调用servlet,具体取决于设置值。以上代码无效。
答案 0 :(得分:0)
这段代码c:out
只是设置变量,而不是在实际的html中打印,要打印它,您必须在设置后使用${role}
或$
您还忘记了<c:when test="{role == 'admin'}">
中的<c:when test="${role == 'admin'}">
,因此它应该是{{1}}
答案 1 :(得分:0)
假设您正在尝试在显示登录选项的模型中加载iframe。单击其中一个锚元素(一个用于管理员,另一个用于普通用户)
将加载模型从锚点内部设置c:set不能作为锚点工作是客户端组件,c:set在服务器本身中进行评估。
相反,使用新的jsp作为锚点的href,并将用户角色选择作为参数传递,如下所示
@echo off
:: Use a FOR loop
for %%F in ("%~dp0") do echo %%~F
:: Use delayed expansion.
:: Note that delayed expansion must be enabled after assignment of fullPath,
:: else any ! within path will be corrupted during the assignment.
set "fullPath=%~dp0"
setlocal enableDelayedExpansion
echo !fullPath!
现在在你的loginpage.jsp中定义按钮如下 -
<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>
注意:您需要在web.xml中为/ userLogin和/ adminLogin提供url映射以映射到相应的servlet