首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jelly Config扩展元素

Jelly Config扩展元素
EN

Stack Overflow用户
提问于 2016-10-04 09:51:19
回答 1查看 192关注 0票数 0

我有一个简短的问题。在jenkins中,当为gui制作jelly配置文件时,您可以使用单选按钮展开并显示更多元素,这是否也可以通过下拉列表来实现?如果是这样的话,有没有人举个例子?我知道如何使用单选按钮,但我不想要单选按钮,我需要内容依赖于选择。

编辑:目前我有以下内容:

代码语言:javascript
复制
   <f:entry title="${%Authentication}" field="authMode">
        <f:select />
    </f:entry>

在java文件中:

代码语言:javascript
复制
    public ListBoxModel doFillAuthModeItems() {
        ListBoxModel items = new ListBoxModel();
        items.add("None");
        items.add("Form Based Authentication");
        items.add("Script Based Authentication");
        return items;
        }

这将创建一个包含3个元素的下拉列表,例如,我只需要根据选择显示不同的内容。无将没有新的内容,基于表单将显示用户名和密码文本字段。

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 17:51:54

您需要研究的是异类列表的jelly标签。上面有一个来自cloud bees的很好的页面,他们的代码是封闭的

我为selenium-axis-plugin编写了一个开源版本,但这是在groovy中使用的groovy表单

代码语言:javascript
复制
namespace(lib.FormTagLib).with {
    entry(title: _("Name"), field:"name") {
        textbox( default:"label")
    }
    block{
        entry(field:"seleniumCapabilities") {
            hetero_list( name: "seleniumCapabilities",
                      hasHeader: true,
                      descriptors:descriptor.axisItemTypes(),
                      items:      instance? 
                           instance.getSeleniumCapabilities():
                           descriptor.loadDefaultItems())
        }
    }
}

source

它的工作原理是在顶级描述符上有一个方法,该方法返回所有可以使用的描述符

代码语言:javascript
复制
List<ItemDescriptor> axisItemTypes() {
    def ait = Jenkins.instance.<Item,ItemDescriptor>getDescriptorList(Item)

    def ret = []

    for (int i = 0; i < ait.size(); i++) {
        /*code removed*/
        ret.add(ait.get(i))
    }
    ret
}

source

所有嵌套的项都必须有自己的描述符,并且还必须有一个@DataBoundConstructor

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39843036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档