Как получить CSS-классы с помощью метода bean-компонента - PullRequest
0 голосов
/ 11 июня 2019

Мне нужно выполнить несколько внутренних методов, основанных на классах CSS <html> или <body>.

Чтобы определить, имеет ли тег <html> имя класса CSS "someClass" Я использовал JQuery $("html").hasClass("someClass").Затем я обернул его в функцию с возвращаемыми значениями

function hasSomeClass() {
    if ($("html").hasClass("someClass")) {
        return true;
    } else {
        return false;
    }
}

Затем я выполнил свою функцию в контроллере через RequestContext.getCurrentInstance().execute("hasSomeClass();");.Но тип возврата RequestContext.getCurrentInstance().execute(), если void.

В: Как я могу отправить возвращаемое значение моей функции javascript моей функции bean-компонента?

Я могуПодумайте о некоторых опциях, но я бы хотел передать возвращаемое значение в качестве параметра моему внутреннему методу напрямую вместо этих обходных путей:

  1. Использовать глобальную переменную javascript в качестве параметра
  2. Использоватьскрытое поле ввода

Редактировать: О других решениях:

Я также пробовал это решение , но я не знаю, куда поставить remoteCommandFunctionName([{name: 'name1', value: 'value1'}, {name: 'name2', value: 'value2'}]);.Я помещу это в <script> тег?Обернуть ли это function?Потому что если я System.out.println(name1); получу null.

Мое быстрое исправление со странным поведением:

<h:body onload="hasSomeClass() ? #{controller.onDoSomething('true')} : #{Controller.onDoSomething('false')}" > возвращает true и false с интервалом в миллисекунду, хотя <html>имеет someClass.

1 Ответ

0 голосов
/ 12 июня 2019

Мое решение, которое работает в моем случае использования

<script>
function hasSomeClass() {
    if ($("html").hasClass("someClass")) {
        someFunc();
    } else {
        someOtherFunc();
    }
}
</script>

<h:body>
<p:remoteCommand name="someFunc" actionListener="#{controller.soSomething('true case')}"/>
<p:remoteCommand name="someOtherFunc" actionListener="#{controller.soSomething('false case')}"/>
</h:body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...