jelly
jelly页面修改后会,不需要重新编译,再次访问即可更新。
jelly文件会关联一个类,定义这样的一个方法:
public String getMyString() {
return "Hello Jenkins!";
}
使用jelly关键字it,it是jelly关联的那个类的引用,可以通过it.
去调用方法:
<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">
${it.myString}
</j:jelly>
这种方法我试了没有成功,不知道是不是姿势不对
field例子:
<f:entry title="${%Port}" field="port">
<f:textbox />
</f:entry>
${%...}
表示国际化字符,field的值是类中的属性或方法,filed的值会填入textbox,f:entry
是一行区域的内容
对某个field的帮助信息可在jelly文件同路径创建help-FIELD.html
文件,对上面的例子就应该是help-port.html
校验表单,使用注解@QueryParameter
后才会和前端表单输入关联
public FormValidation doCheckPort(@QueryParameter String value) {
if(looksOk(value)) return FormValidation.ok();
else return FormValidation.error("There's a problem here");
}
如果类没有实现Descriptors接口,则需要重写configure(StaplerRequest req, JSONObject formData)
方法,
点击保存按钮会触发该方法,configure方法中使用optInt方法来获取用户的配置值,如formData.optInt("port", 3141)
,
在configure方法中再调用save()
方法保存设置的值,在构造函数中调用load()
方法。