[英]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.requestURL
或pageContext.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.