Чтобы получить хэш URL # в javascript, вы можете просто сделать:

window.location.hash

Есть ли аналогичный простой и легкий способ сделать это в JSTL?

Пример имеющегося URL: http://hatsos.com/#somehashname

Если нет встроенного простого метода, как мне получить URL-адрес, а затем проанализировать его хеш?

1
UpHelix 26 Авг 2011 в 03:35

2 ответа

Лучший ответ

Единственный способ получить идентификатор хеш-фрагмента на стороне сервера - позволить клиентской стороне отправлять HTTP-запрос со значением в качестве параметра запроса всякий раз, когда он изменяется. Например, с Ajax во время события window.onhashchange. Из истории ваших вопросов я вижу, что вы знакомы с jQuery. Вот начальный пример:

window.onhashchange = function() {
    $.get('someservlet', { 'hash', window.location.hash }, function(response) {
        // ...
    });
}

С участием

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String hash = request.getParameter("hash");
    // ...
}

Чтобы покрыть отсутствие поддержки IE6 / 7 для window.onhashchange, рассмотрите возможность использования плагина jQuery hashchange .

2
BalusC 26 Авг 2011 в 02:13

Вы говорите об идентификаторе фрагмента URI, а большинство пользовательских агентов не даже отправьте это на сервер, так что вы не сможете получить его там. JavaScript может получить к нему доступ, потому что он работает на стороне клиента.

1
Ryan Stewart 26 Авг 2011 в 01:58