簡體   English   中英

如何將javascript值傳遞到同一jsp頁面

[英]how to pass javascript value to same jsp page

我想從Java腳本中獲取頁面URL,並檢查該URL值以吹走腳本(在同一jsp頁面中)。

<script>
var currentUrl=window.location.href;
</script>

<c:when test="${fn:containsIgnoreCase(currentUrl, 'homepage') or fn:containsIgnoreCase(currentUrl, 'accountpage')}">

// need to do some operation for this purticular page only.
</c:when>

請給我建議。 在此先感謝,Muthu

如果可以通過請求訪問JavaScript,為什么還要從JavaScript訪問該URL? 使用OriginatingRequest bean,您可以執行以下操作:

<dsp:getvalueof bean="/OriginatingRequest.requestUri" var="requestUri" />

然后,您可以按照以下步驟進行檢查:

<c:when test="${fn:containsIgnoreCase(requestUri, 'homepage') or fn:containsIgnoreCase(requestUri, 'accountpage')}">
    // need to do some operation for this particular page only.
</c:when>

這是滿足上述特定用例的最簡單方法。

您要實現的目標有很多問題。

JavaScript代碼(在<script/>標記內)在客戶端執行,而JSP EL代碼(在<c:when/>標記和fn:containsIgnoreCase()函數中)在服務器端執行。

這兩位代碼不在同一系統中運行。 他們彼此之間沒有可見性

這兩位代碼不能同時運行。 服務器端代碼將在服務器生成HTTP響應時執行,並且結果HTML將發送回瀏覽器。 然后,瀏覽器將執行客戶端代碼。 因此,盡管您的javascript代碼出現在JSP文件中的JSP EL代碼之前,但它們將在不同的時間執行-JSP EL代碼將首先(由服務器)執行,然后將執行JavaScript(由瀏覽器)

最后,也是最不重要的一點是,語言是不同的。 即使要在同一系統中執行這兩位代碼,EL也不是JavaScript,JavaScript也不是EL。 在一個塊中用一種語言聲明的變量在另一塊中用另一種語言不可見。

您可以使用一種語言(EL)編寫所需的所有邏輯,並使用pageContext.request.requestURLpageContext.request.requestURI對象屬性按所需的順序在同一系統中執行所有邏輯

嘗試這個:

<html>
    <script language="javascript" type="text/javascript">
    function call(){
    var name = "xyz";
    window.location.replace("a.jsp?name="+name);
    window.onload = function() {
       call();
    }
    </script>
    <%
    String name=request.getParameter("name");
    if(name!=null){
    out.println(name);
    }
    %>
 </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM