2015-06-19 4 views
-1

Я хочу получить URL-адрес страницы из сценария java и проверить, что значение URL-адреса должно сдуть скрипт (внутри той же страницы jsp).как передать значение javascript на ту же страницу 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

+0

Вы не можете получить доступ расслоение плотной переменные непосредственно в EL – Arvind

+0

@Arvind: Любой другой способ получить этот url для скрипта. –

ответ

0

попробовать это:

<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> 
+0

Ritesh, Но у меня нет кнопки. Мне нужно это значение при загрузке страницы. –

+0

@MuthuKumar отредактировал ответ –

2

Почему вы хотите получить доступ к URL из JavaScript, если у вас есть доступ к нему через запрос? Используя OriginatingRequest боб вы можете сделать следующее:

<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> 

Это самый простой способ, чтобы удовлетворить ваши конкретный сценарий использования выше.

1

Существует ряд проблем с тем, чего вы пытаетесь достичь.

Код JavaScript (внутри тега <script/>) выполнен на стороне клиента, а код JSP EL (в теге <c:when/> и fn:containsIgnoreCase()) выполнен на стороне сервера.

Два бита кода не работают в одной системе. Они не имеют видимости друг друга

Два бита кода не запускаются одновременно. Код на стороне сервера будет выполнен, так как ответ HTTP генерируется сервером, и полученный HTML-код будет отправлен обратно в браузер. Затем браузер выполнит клиентский код. Поэтому, хотя ваш код javascript возникает до вашего кода JSP EL в JSP-файле, они будут выполняться в разное время - код JSP EL будет выполнен первым (по серверу), а затем JavaScript будет выполнен (браузером)

И, наконец, языки не совпадают. Даже если два бита кода должны были быть выполнены в одной и той же системе, EL - это не JavaScript, а JavaScript - не EL. Переменная, объявленная на одном языке в одном блоке, не будет видна на другом языке в другом блоке.

Вы могли бы написать всю логику вам нужно на одном языке (EL), и он будет выполнен в той последовательности, которую все в той же системе, используя свойства объекта pageContext.request.requestURL или pageContext.request.requestURI

Смежные вопросы