2012-07-08 110 views
1

我有2個鏈接。在會話中,我存儲了一些數據。我希望如果用戶點擊特定鏈接查看會話,並且包含適當的值,則繼續。否則會出現一個AJAX彈出塊。使用Onclick方法的JSP和JSTL

JAVASCRRIPT彈出塊

function displaymessage(title,message,close) 
{ 

     resultReturn= $.confirm({ 
     'title'  : title, 
     'message' : message 
     'buttons' : { 
     close/*'Yes'*/ : { 
       'class' : 'blue', 
            'caption': close, 
       'action': function(){} 
         }   
         } 
          }); 
    } 

JSP與JSTL標籤:

<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',並選擇更多鏈接可以繼續,但是如果選擇主頁鏈接,將出現彈出塊。 我堅持,我需要對我該怎麼辦this.Please幫我

UPDATE

我想下面的腳本,但它不工作有所幫助:

<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

你的問題是什麼? – reporter 2012-07-08 12:08:06

+0

我不知道我該怎麼做這個。我需要一些指導 – 2012-07-08 12:55:27

+0

不知道怎麼做具體? – 2012-07-08 13:52:47

回答

2

您不能使用客戶端JS檢查會話中保存的服務器端值。相反,您需要使用JS對運行服務器端代碼以檢查會話的請求映射進行GET調用。流程可能如下:

  1. 用戶點擊頁面上的按鈕/圖像/東西從點擊
  2. JS火災,使得AJAX調用(如$.get)請求映射/check_session.do
  3. 請求映射檢查會議的價值,返回真或假如JSON
  4. 客戶端JS過程基於返回值返回JSON,塊或前進

或者,使用JSTL訪問塞西並將會話字段的值寫入頁面上的隱藏表單字段,客戶端JS隨後讀取該表單字段的值。例如:http://www.steve-farmer.com/examples/el/ui/ses-attr-name.jsp