#jsf #back-button
#jsf #кнопка возврата
Вопрос:
Можете ли вы управлять кнопкой возврата браузера с помощью JSF faces-config navigation? При нажатии кнопки возврата в браузере хотелось бы использовать навигацию, подобную следующей, для управления отображением страницы:
<navigation-rule>
<from-view-id>/pageThree.xhtml</from-view-id>
<navigation-case>
<from-outcome>back</from-outcome>
<to-view-id>/pageOne.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
Ответ №1:
Нет, вы не можете. Это уже невозможно с HTML / JS, поэтому JSF здесь мало что может для вас сделать.
Лучше всего условно отображать содержимое PageTwo.xhtml в PageOne.xhtml на основе некоторого условия JS / ajax. Таким образом, в истории браузера нет запроса GET на PageTwo.xhtml.
Вот базовый пример запуска с простым JS:
<div id="one">
<h1>Page one</h1>
<p><a href="#" onclick="showPageTwo()">Go to page two</a></p>
</div>
<div id="two" style="display: none;">
<h1>Page two</h1>
<p><a href="pageThree.xhtml">Go to page three</a></p>
</div>
с помощью
<script>
function showPageTwo() {
document.getElementById("one").style.display = 'none';
document.getElementById("two").style.display = 'block';
}
</script>
Это также легко сделать с помощью JSF 2.0 ajax и rendered
атрибута.
Ответ №2:
Вот одно из возможных решений: dojo.back и jQueryTools