我的Plugin
课程没有Descriptor
:
@Extension
public class Plugin extends hudson.Plugin {
// ...
public FormValidation doValidateForm(String s) {
return FormValidation.ok("Hello world! Your 's': " + s);
}
}
我有这个班的config.jelly
:
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<!-- ... -->
<f:entry title="Test">
<f:textbox name="test" value="123" field="test"/>
</f:entry>
<f:validateButton title="Test" progress="Testing..."
method="validateForm" with="test"/>
<!-- ... -->
</j:jelly>
问题是当我按下按钮时,我不能让Jenkins向我的方法发送请求。无论我在method
的{{1}}属性中写什么,Jenkins只是把它放在validateButton
之后,即使我写的是/descriptorByName/jenkins.model.GlobalPluginConfiguration/
。如何连接我的http://localhost:8080/
方法和我的doValidateForm
?
答案 0 :(得分:0)
这必须在描述符上才能获得免费功能。
您还需要像这样注释您的参数
FormValidation doCheckServer(@QueryParameter String test) {
//stuff
}
添加描述符是simple change
class Plugin extends AbstractDescribableImpl<Plugin> {
String test;
@DataBoundConstructor
public Plugin(String test) {
this.test = test;
}
....
@Extension
public static class DescriptorImpl extends Descriptor<Plugin> {
public String getDisplayName() { return ""; }
public FormValidation doValidateForm(@QueryParameter String test) {
return FormValidation.ok("Hello world! Your 'test': " + test);
}
}
}
未经过测试,您需要做更多工作,以便从作业中的XML反序列化