3

我目前正在开发我的第一个 Jenkins 插件。
我需要在作业页面上有一个通过 java 方法填充的下拉菜单,但是 jelly 和 java 文件似乎不能一起正常工作。

jobMain.jelly

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<h2>FooBar</h2>
    <f:entry field="selection" title="Choose">
        <f:select />
    </f:entry>
</j:jelly>


Java类.java

public class JavaClass implements Action {

private AbstractProject ap;

public JavaClass(AbstractProject ap) {
    this.ap = ap;
}

public String getIconFileName() {
    return null;
}

public String getDisplayName() {
    return "";
}

public String getUrlName() {
    return "something";
}

@Extension
public static final class DescriptorImpl extends TransientProjectActionFactory {

    String selection;

    public DescriptorImpl() throws IOException {
    }

    @DataBoundConstructor
    public DescriptorImpl(String selection) {
        this.selection = selection;
    }

    public ListBoxModel doFillSelectionItems() throws IOException {
        ListBoxModel model = new ListBoxModel();
        model.add("test");
        return model;
    }

    @Override
    public Collection<? extends Action> createFor(AbstractProject target) {
        return Arrays.asList(new JavaClass(target));
    }
  }
}


当我运行它时,作业页面上有一个空的下拉菜单。我可能做错了什么?

4

1 回答 1

0

添加一个 Option 对象,而不是传递一个字符串。

model.add(new Option("Test"));
于 2018-10-22T08:32:21.170 回答