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

标签 jenkins-plugins jelly

我在开发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() 驻留在该 jelly 文件相应的 java 类中:

class CheckboxTemplate extends ListViewColumn  {

    ...

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

    ...

    @Extension
    public static class DescriptorImpl extends ListViewColumnDescriptor {

    ...

    }

但这显然不起作用......

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

有人知道为什么在选中/更改复选框时不执行 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 文件中的预定义变量不需要它工作,我只是传递它来映射具有相应作业名称的复选框。

希望这对于那些在这些主题的文档(以及不存在的完整示例)中遇到困难的其他人有用。

关于jenkins-plugins - jelly 中的 onclick 不起作用,jenkins 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291633/

相关文章:

jenkins - 如何避免 Jenkins 在 Jenkinsfile 中触发 git 命令

jenkins - 有什么方法可以自动将maven项目转换为管道

tomcat - Jenkins 将插件部署到多个 Tomcat 服务器

javascript - 如何在servicenow中从javascript访问果冻变量

java - 值不存在于可选 block 的下拉列表中 - jelly/jenkins

Jenkins 电子邮件分机果冻脚本包含文件内容

java - jelly.config 中的可选 block 不会转换到 jenkins 插件开发中的后端。

git - 仅构建已推送到的 Git 分支

jenkins - 在 Jenkins 的 email-ext 中快速测试 Jelly 模板

jenkins - 如何将 Javascript 文件添加到 Jenkins jelly 文件中?