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 文件中的预定义变量不需要此工作,我只传递它以将复选框映射到相应的作业名称。
希望这对那些在这些主题的文档(以及不存在的完整示例)中苦苦挣扎的其他人有用。
我正在尝试在开发 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 文件中的预定义变量不需要此工作,我只传递它以将复选框映射到相应的作业名称。
希望这对那些在这些主题的文档(以及不存在的完整示例)中苦苦挣扎的其他人有用。