URL#哈希要獲取URL哈希#
在JavaScript,你可以這樣做:獲取與JSTL
window.location.hash
是否有類似的簡單和容易的方式做到這一點的JSTL?
一個URL的例子,我有:http://hatsos.com/#somehashname
如果沒有一個內置的簡單的方法,我將如何去獲取URL,然後解析散出來的嗎?
URL#哈希要獲取URL哈希#
在JavaScript,你可以這樣做:獲取與JSTL
window.location.hash
是否有類似的簡單和容易的方式做到這一點的JSTL?
一個URL的例子,我有:http://hatsos.com/#somehashname
如果沒有一個內置的簡單的方法,我將如何去獲取URL,然後解析散出來的嗎?
在服務器端獲取散列碎片標識符的唯一方法是讓客戶端發送一個HTTP請求,並將該值作爲請求參數進行更改。例如,在window.onhashchange
事件期間使用Ajax。我在你的問題歷史中看到你熟悉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 plugin。
我很害怕。我在JSTL中需要它的原因是,我可以將哈希值添加到會話中。 $ {} sessionScope.hash。這樣,當他們最初到達一個帶有散列的頁面後,無論他們接下來去哪裏,我都可以堅持這個價值。是我的客戶端的設計,它必須是散列...沒有參數。順便說一下,這個哈希將不會在加載時間後改變。這是用戶直接訪問的網址。所以我認爲它可用於服務器,因爲參數處於相同的情況。 – UpHelix
你說的是URI Fragment id,大多數用戶代理甚至不會將它發送到服務器,所以你不能真正把它發送到那裏。 JavaScript可以訪問它,因爲它在客戶端運行。
是不是隻在客戶端使用的[URL片段標識符](http://en.wikipedia.org/wiki/Fragment_identifier)? –