Вы можете сделать это с помощью window.onhashchange
, который заполняет поле ввода скрытой формы, которое представляет собой асинхронно, когда поле ввода изменилось.
Вот начало Пример страницы Facelets:
SO question 3475076
Change the fragment in the URL. Either manually or by those links:
foo, bar, baz
Fragment is currently:
Вот как выглядит соответствующий компонент:
package com.stackoverflow.q3475076;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.AjaxBehaviorEvent;
@ManagedBean
@RequestScoped
public class Bean {
private String fragment;
public void processFragment(AjaxBehaviorEvent event) {
// Do your thing here. This example is just printing to stdout.
System.out.println("Process fragment: " + fragment);
}
public String getFragment() {
return fragment;
}
public void setFragment(String fragment) {
this.fragment = fragment;
}
}
Вот и все.
Обратите внимание, что onhashchange
событие является относительно новым и не поддерживается старыми браузерами. В случае отсутствия поддержки браузера (undefinied и т. Д.) Вы хотите проверить window.location.hash
с интервалами, используя setInterval()
. Приведенный выше пример кода должен, по крайней мере, дать хорошее начало. Он работает, по крайней мере, с FF3.6 и IE8.
Это означает, что вы попросили его включить библиотеку libz.a или libz.so, содержащую пакет сжатия, и хотя компилятор обнаружил некоторые файлы, ни один из них не подходил для используемой вами сборки.
Вам либо нужно изменить параметры сборки, либо вам нужно установить правильную библиотеку, либо вам нужно указать, где правильная библиотека находится в командной строке ссылки, с помощью -L / where / it / is / lib
вариант типа.