我正在构建一个访问远程服务器的 Jenkins 插件。作为配置的一部分,用户需要输入服务器的 URL 并提供访问密钥。然后插件将从服务器检索资源列表,用户需要从 htmlselect
输入中选择合适的资源。
我正在使用 /lib/form 命名空间来创建config.jelly
文件,并且正在使用标签填充选择:
<f:entry title="Resource" field="resource">
<f:select />
</f:entry>
在我的 Descriptor 类中,我有一个方法:
doFillResourceItems(@QueryParamter final String url, @QueryParameter final String key)
onchange
并且订书机似乎会在浏览器触发事件时调用该方法(如预期的那样)。
我的问题出在doCheckResource(@QueryParameter final String value)
方法上。ListBoxModel
访问该方法返回的对象会很有帮助doFillResourceItems()
,因为我想向用户显示的错误消息应该不同,具体取决于插件是否能够检索资源列表。一种选择是简单地将url
andkey
字段也注入doCheckResource
方法中,然后再试一次,但是我两次检索资源列表,这并不理想。
ListBoxModel
为了让 Stapler 将先前检索到的对象注入到验证方法调用中,我需要做什么?