如何在Jenkins Active Choice Reactive Reference参数中读取HTML下拉框值
解决Jenkins Active Choice参数读取选中值问题
问题背景
使用Jenkins的Active Choice Reactive Reference Parameter,基于前置参数VMConfiguration生成了包含"Ver1""Ver2""Ver3"的下拉列表,需要实现读取该下拉框选中值的功能,现有Groovy代码如下:
ad_studio_install = [ "AD Studio Install": ["Ver1", "Ver2", "Ver3"] ] adstudio_list = ad_studio_install[VMConfiguration] html_to_be_rendered = """<select name="value">""" adstudio_list.each { json_file -> html_to_be_rendered = """ ${html_to_be_rendered} <option value="${json_file}">${json_file}</option> """ }
解决方案
1. 完善HTML生成代码(闭合标签)
现有代码未闭合<select>标签,会导致HTML结构无效,Jenkins无法正确识别下拉框。修改代码如下:
ad_studio_install = [ "AD Studio Install": ["Ver1", "Ver2", "Ver3"] ] adstudio_list = ad_studio_install[VMConfiguration] html_to_be_rendered = """<select name="value">""" adstudio_list.each { json_file -> html_to_be_rendered += """ <option value="${json_file}">${json_file}</option> """ } // 闭合select标签 html_to_be_rendered += "</select>" return html_to_be_rendered
注意:使用
+=拼接字符串比重新赋值更高效,最后必须返回生成的HTML内容。
2. 确保参数配置正确
- 在Jenkins参数配置页面,将该参数类型设为Active Choice Reactive Reference Parameter
- 勾选Allow HTML选项(否则Jenkins会过滤HTML内容)
- 在Referenced parameters中填入前置参数
VMConfiguration
3. 读取选中值
配置完成后,该参数的选中值会自动被Jenkins捕获,后续构建步骤中直接通过${参数名}引用即可。例如:
- 如果参数名为
ADStudioVersion,在Shell构建步骤中可以用:
echo "选中的版本是:${ADStudioVersion}"
- 在Groovy脚本步骤中可以用:
println "选中的版本是:${ADStudioVersion}"
内容的提问来源于stack exchange,提问作者NagalaeVik
相关产品推荐
相关产品推荐

