Как установить переменную viewScope в Java - PullRequest
0 голосов
/ 07 июня 2018

В моем приложении XPages я хочу управлять поведением XPage при выполнении вычислений в бэкэнде в Java.

Я хотел бы управлять поведением, устанавливая переменные viewScope для вычисления визуализируемого свойстванекоторые элементы управления.

Может ли кто-нибудь подсказать мне, как мне этого добиться?Google не был моим другом до сих пор ...

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Почему бы просто не управлять свойствами бина для этого?В моих приложениях я почти никогда не использую переменные в области видимости.

0 голосов
/ 08 июня 2018

Малин,

Я предлагаю вам использовать управляемые бины, как рекомендует Говард.Это очень удобно при работе с Java в XPages.

1.Создать бин

Это обычный Java-бин с конструктором без аргументов.Например:

public class ExporterBean implements Serializable {
    private static final long serialVersionUID = 1L;
    private int numberOfDocs = 1L;

    public ExporterBean() {
        System.out.println("Instantiating ExporterBean");
    }

    public int getNumberOfDocs() {
        return numberOfDocs;
    }

    public void setNumberOfDocs(int numberOfDocs) {
        this.numberOfDocs = numberOfDocs;
    }
}

Обратите внимание, что вы должны реализовать Serializable для всех ваших bean-компонентов.Область видимости заставит вас сделать это - но не остальные (но это может укусить вас позже в зависимости от того, сохраняете ли вы бины в памяти или сериализуете их на диск)

2.Определите его как управляемый компонент

Это делается в файле Face-config.xml в Конфигурация приложения в навигации Domino Designer.Вам нужно добавить что-то вроде:

  <managed-bean>
    <managed-bean-name>Exporter</managed-bean-name>
    <managed-bean-class>dk.myapp.bean.ExporterBean</managed-bean-class>
    <managed-bean-scope>view</managed-bean-scope>
  </managed-bean>

Область действия может быть: запрос , просмотр , сеанс или приложение.Как только вы это сделаете, вы можете просто ссылаться на bean-компонент непосредственно в вашем XPage, используя имя, которое вы указали в face-config.xml.

В моем примере это может быть:

<xp:text escape="false" value="#{Exporter.numberOfDocs}"/>

Надеюсь, это поможет.

/ Джон

0 голосов
/ 07 июня 2018

попробуй

ExtLibUtil.getViewScope().put("variableKey", "variableValue");
...