設定項目の値をAjaxでチェックする。
config.jelly
<f:entry title="${%title}" > <f:textbox name="doc.title" value="${doc.title}" checkUrl="'descriptorByName/DocumentLinksPublisher/checkTitle?value='+escape(this.value)"/> </f:entry>
checkUrlに上記のように記述すると、DocumentLinksPublisherのDescriptorのdoChecktTitle()が呼ばれる。その結果により、メッセージが適当に表示される。
doCheckTitle
public FormValidation doCheckTitle(@QueryParameter final String value) throws IOException, ServletException { Hudson.getInstance().checkPermission(Hudson.ADMINISTER); LOGGER.finest("value = '" + value + "'"); final String v = Util.fixEmptyAndTrim(value); if (v == null) { return FormValidation.error("REQUIRED"); } return FormValidation.ok(); }
引数を"@QueryParameter String value"とすることで、クライアントから送られてきたvalueを取得できる。Formvalidation.error("エラーメッセージ")を返すことで、クライアントにエラーメッセージを表示することができる。問題なければ、FormValidation.ok()を返す。