Самостоятельный вызов страницы не обновляется - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь обновить всю страницу в adf, когда вы нажимаете на ссылку, чтобы перейти на ту же страницу с новыми параметрами страницы. Если я открою ссылку в новой вкладке, она будет работать нормально, но ее открытие на той же вкладке не обновит.

У меня есть страница, которая просто отображает значение параметра из URL, ссылка на ту же страницу с другим значением параметра и выходной текст, который отображает дату и время. Мой поток задач начинается с вызова RetrieveDateTime (), а затем переходит к refrestTest.jsff. Поток задач - это область на странице refresh.jsf.

public class RefreshDC {

    private String dateTime;

    public RefreshDC() {
        super();
    }

    public void RetrieveDateTime() {
        System.out.println("DC RETRIEVEDATETIME");
        RefreshFacade rf = new RefreshFacade();
        this.dateTime = rf.getDate().getDatetime();
    }

    public void setDateTime(String dateTime) {
        this.dateTime = dateTime;
    }

    public String getDateTime() {
        return dateTime;
    }
}

Фрагмент страницы:

//refreshTest.jsff
<?xml version='1.0' encoding='UTF-8'?>
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
  <af:panelGroupLayout id="pgl1" layout="vertical">
    <af:outputText value="#{param.id}" id="ot1"/>
    <af:goLink text="RP PDTLS" id="gl1" destination="/faces/refresh.jsf? 
               id=1234567890"/>
    <af:outputText value="DateTime: #{bindings.dateTime.inputValue}" 
                   shortDesc="#{bindings.dateTime.hints.tooltip}" id="ot2"
                   partialTriggers="gl1"/>
  </af:panelGroupLayout>
</ui:composition>

Страница:

//refresh.jsf
<f:view xmlns:f="http://java.sun.com/jsf/core" 
        xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <af:document title="refresh.jsf" id="d1">
        <af:form id="f1">
            <af:region value="#{bindings.refresh1.regionModel}" id="r1"/>
        </af:form>
    </af:document>
</f:view>

Как я уже сказал, если вы откроете goLink на новой вкладке, он обновит dateTime, однако если вы откроете его на той же вкладке, dateTime останется прежним. (Param.id обновляется в обоих случаях)

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Мне удалось решить эту проблему с помощью потока задач. По сути, я заставил кнопку перейти на новую страницу с регионом. В этом регионе есть поток задач, который читает параметры URL и, если он соответствует моим условиям, возвращает ссылки на исходную страницу с новыми параметрами (toDocumentsPage). В противном случае переходит на другую страницу (searchResults). Поток задач для обновления страницы

0 голосов
/ 09 января 2019

Вы можете обновить всю страницу программно, заменив свой golink на кнопку adf с ActionListener, вызывающим следующую функцию Java-компонента:

public static void refreshPage() {
  FacesContext fc = FacesContext.getCurrentInstance();
  String refreshpage = fc.getViewRoot().getViewId();
  ViewHandler ViewH = fc.getApplication().getViewHandler();
  UIViewRoot UIV = ViewH.createView(fc, refreshpage);
  UIV.setViewId(refreshpage);
  fc.setViewRoot(UIV);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...