Как получить доступ к свойству компонента Magnolia v5.7 из класса Model java - PullRequest
1 голос
/ 08 апреля 2020
  • Я определил свойство в диалоговом окне компонента

enter image description here

  • Как получить доступ к этому значению из execute () метод в классе модели?
  • Класс модели будет запрашивать обслуживание по этому URL

В документации обсуждается только то, как получить доступ к данным в классе модели, мне нужно передать URL в Класс модели.

Я не могу отправить запрос со страницы на ajax, так как домен службы не подвергается воздействию extr anet.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Ваш класс модели простирается от RenderingModelImpl. Или, по крайней мере, так должно быть:).
Из-за этого есть конструктор, в который передается текущий узел компонента, и он предоставляется вам с помощью метода getNode().
Итак, если вы нажмете на Save changes в вашем в диалоговом окне значение сохраняется в свойстве unsubscribeUrl, чтобы получить доступ к этому значению из метода execute():

public String execute() {
    // read unsubscribe url
    String unsubscribeUrl = this.getNode().getProperty("unsubscribeUrl").getString();
}
0 голосов
/ 09 апреля 2020

В вашем ftl вы можете вызвать модель с аргументом:

${model.myMethod(content.unsubscribe_url)}

В вашей модели вы можете использовать аргумент, чтобы сделать то, что вам нужно

 public class myMethod(String url) {
     do something ....
 }
...