Можете ли вы управлять кнопкой возврата браузера с помощью JSF faces-config navigation

#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