Как создать динамику c HTML при выборе события onChange в Jelly Script? - PullRequest
0 голосов
/ 05 августа 2020

Я работаю над плагином Jenkins. У меня есть список с некоторыми вариантами. Я создал этот список, используя класс Jelly и Jenkins / hudson ListBoxModel.

Вот мой Java Код:

        public ListBoxModel doFillArgListItems() throws InterruptedException, IOException {
            ListBoxModel m = new ListBoxModel();  
            m.add("arg1");
            m.add("arg22");
            return m;
    }

А вот мой Jelly Script:

<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:html="jelly:html" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:c="/lib/credentials">
<st:bind var="backend" value="${descriptor}"/>    
<f:entry title="Arguments" field="argList">
  <f:select id="arguments" onchange="createAnotherList()" />
</f:entry> 

Как видите, есть тег select, в котором я заполняю параметры из функции Java doFillArgListItems.

Теперь я хочу динамически создать другое окно списка при событии click / onchange выбранного элемента в список.

Для этой цели я пытаюсь вызвать функцию из JavaScript и создать список, используя чистый JavaScript. Как видите, я вызываю функцию createAnotherList () для события "onchange" выбранного элемента.

Вот код JavaScript:

    <script type="text/javascript" >
        
         function createAnotherList() {
            var e = document.getElementById("arguments");
            var arg = e.options[e.selectedIndex].value;
//Code to render list box using JavaScript
//which I have not implemented for the moement
          }
                         
    </script>

Но, прежде чем делать это исключительно в JavaScript, я хочу знать, правильный это подход или нет.

Или есть ли какой-либо стандарт Способ "Jelly + Java", который существует для выполнения этой работы?

Заранее спасибо.

...