我有2个链接。在会话中,我存储了一些数据。我希望如果用户单击特定链接以查看会话并且是否包含适当的值,则继续。否则会出现一个AJAX弹出框。
JAVASCRRIPT弹出块
function displaymessage(title,message,close)
{
resultReturn= $.confirm({
'title' : title,
'message' : message
'buttons' : {
close/*'Yes'*/ : {
'class' : 'blue',
'caption': close,
'action': function(){}
}
}
});
}
带有JSTL标记的JSP:
<div class="header">
<a href="<c:url value='/home'/>">
<a href="<c:url value='/further'/>">
</div>
<c:if test="${not fn:containsIgnoreCase(data, 'mykey')}">
<a id="get" class="right keepScrollPosition"
onclick="return displaymessage('<spring:message code="access.denied.title"/>'
,'<spring:message code="access.denied.message"/>','<spring:message code="access.denied.close"/>');"
href="#" /></a>
</c:if>
例如,如果在会话中包含值'mykey',则可以进入主页链接,否则会出现弹出窗口。如果会话中包含值'mypassword'并选择其他链接可以继续,但如果选择主链接,则会出现弹出框。 我被困住了,我需要一些帮助才能做到这一点。请帮帮我
更新
我正在尝试以下脚本,但它不起作用:
<li><a href="<c:url value='/home/'/>"<spring:message code="home_page"/>
onclick="if(<c:if test="${not fn:containsIgnoreCase(data, 'mykey')}">){
return displaymessage('<spring:message code="access.denied.title"/>'
,'<spring:message code="access.denied.message"/>','<spring:message code="access.denied.close"/>')" href="#" ;
}
</a>
</li>
答案 0 :(得分:2)
您不能使用客户端JS来检查会话中保存的服务器端值。相反,您需要使用JS对请求映射进行GET调用,该映射运行服务器端代码以检查会话。流程可以如下:
$.get
)以请求映射/check_session.do
或者,使用JSTL访问会话并将会话字段的值写入页面上的隐藏表单字段,客户端JS随后将其读取。示例:http://www.steve-farmer.com/examples/el/ui/ses-attr-name.jsp