要回答上面的实际问题(即没有描述符),您可以将验证所需的任何字段提供给(逗号分隔)的属性,然后将with
属性设置为类似于以下内容...f:validateButton
method
method="${it.fullURL}triggerOfficial"
...然后在 java ( it
) 中有一个方法...
public String getFullURL(){
return Stapler.getCurrentRequest().getOriginalRequestURI().substring(1);
}
...然后还有执行验证本身的方法...
public FormValidation doTriggerOfficial() {
return FormValidation.ok("hello");
}
但是,如果您想对通常没有描述符的类类型执行正常的字段验证(没有 validateButton)......
1)添加implements Describable<YourClassName>
到您的班级签名
2)添加这样的东西......
@SuppressWarnings("unchecked")
@Override
public Descriptor<ConfigLink> getDescriptor() {
Jenkins jenkins = Jenkins.getInstance();
if (jenkins == null) {
throw new IllegalStateException("Jenkins has not been started");
}
return jenkins.getDescriptorOrDie(getClass());
}
3)加上一个内部类(使用普通doCheckXXX
方法)
@Extension
public static final class DescriptorImpl extends Descriptor<YourClassName> {...}
4)然后最后将它在果冻添加属性中链接到包含您想要自动验证的表单元素descriptor="${it.descriptor}"
的标签(这将调用步骤2中的详细信息)f:form
getDescriptor