jelly 中的 onclick 不起作用,jenkins 插件

onclick in jelly is not working, jenkins plugin

我正在尝试在开发 jenkins 插件时使用 @onclick,但是单击具有此属性的复选框时没有任何反应(与 @onchange 相同)。

我为每个作为 ListViewColumn 实现的作业都有一个复选框,并带有相应的 column.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">

<td>
<f:checkbox name="selected" onclick="${it.itClicked()}" onchange="${it.itClicked()}" />
</td>
</j:jelly>

而 itClicked() 方法驻留在此果冻文件的相应 java class 中:

class CheckboxTemplate extends ListViewColumn  {

    ...

    public void itClicked() {
        System.out.println("it clicked!");
    } 

    ...

    @Extension
    public static class DescriptorImpl extends ListViewColumnDescriptor {

    ...

    }

但这显然不起作用...

我制作了另一个插件,在此之前从 jelly 文件中的预定义对象 "it" 中调用了 java class 中的方法并且它工作正常,因此具有该方法在工作场所定义不是问题(我假设)。

有人知道当复选框为 checked/changed 时为什么不执行 itClicked() 吗?

如果有我遗漏的信息,请告诉我,我会尽快回来!

我通过添加

设法解决了这个问题
<st:bind var="myItem" value="${it}"/>

在我的果冻文件中并将@clicked 更改为

onclick="myItem.mark('${job.fullName}')"

其中 mark() 是在后端使用特定注释定义的

@JavaScriptMethod
public void mark(String job) {
   // do what you need to do
}

job 当然,如果 column.jelly 文件中的预定义变量不需要此工作,我只传递它以将复选框映射到相应的作业名称。

希望这对那些在这些主题的文档(以及不存在的完整示例)中苦苦挣扎的其他人有用。