Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jenkins插件:可选块和它';保存和加载配置对话框后,不会保留嵌套的单选按钮_Java_Jenkins_Jenkins Plugins_Jelly - Fatal编程技术网

Java Jenkins插件:可选块和它';保存和加载配置对话框后,不会保留嵌套的单选按钮

Java Jenkins插件:可选块和它';保存和加载配置对话框后,不会保留嵌套的单选按钮,java,jenkins,jenkins-plugins,jelly,Java,Jenkins,Jenkins Plugins,Jelly,我正试图开始Jenkins插件开发,但在插件全局配置的持久性方面有一个小问题 所讨论的选项是一个带有2个嵌套单选按钮的可选块,正如您在插件的global.jelly中看到的: 相关Java代码如下所示: 公共类HelloWorldBuilder扩展生成器{ //... @延伸 公共静态最终类描述符扩展了BuildStepDescriptor{ 使用外语; 专用字符串语言; 公共描述符(){ 加载(); } @凌驾 公共布尔配置(最终StaplerRequest请求、最终JSONObject

我正试图开始Jenkins插件开发,但在插件全局配置的持久性方面有一个小问题

所讨论的选项是一个带有2个嵌套单选按钮的可选块,正如您在插件的global.jelly中看到的:

相关Java代码如下所示:
公共类HelloWorldBuilder扩展生成器{
//...
@延伸
公共静态最终类描述符扩展了BuildStepDescriptor{
使用外语;
专用字符串语言;
公共描述符(){
加载();
}
@凌驾
公共布尔配置(最终StaplerRequest请求、最终JSONObject formData)引发FormException{
//要保留全局配置信息,
//将其设置为properties并调用save()。
最终JSONObject languageJSON=formData.getJSONObject(“useForeignLanguage”);
if((languageJSON!=null)&&&!(languageJSON.isNullObject()){
this.useLanguage=languageJSON.getString(“useLanguage”);
this.useForeignLanguage=true;
}否则{
this.useLanguage=null;
this.useForeignLanguage=false;
}
save();
返回super.configure(req,formData);
}
公共字符串getUseLanguage(){
返回此.useLanguage;
}
公共布尔getUseForeignLanguage(){
返回此文件。使用外语;
}
//...
}
}
配置本身可以很好地保存在xml中,每次保存配置时都会加载xml,因此我想问题在于加载和填充表单模块:

<?xml version='1.0' encoding='UTF-8'?>
<bar.foo.testing.HelloWorldBuilder_-Descriptor plugin="YetAnotherPluginTest@1.0-SNAPSHOT">
  <useForeignLanguage>true</useForeignLanguage>
  <useLanguage>jp</useLanguage>
</bar.foo.testing.HelloWorldBuilder_-Descriptor>

真的
太平绅士

感谢您提前提供的帮助

更新果冻解决了以下问题:

<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">

  <f:section title="Hello World Builder">
    <f:optionalBlock name="useForeignLanguage" title="Use foreign language" checked="${instance.useForeignLanguage}">
      <f:entry title="Language to use" field="useLanguage" description="Check if we should say hello in another language">
          <f:entry>
            <f:radio name="useLanguage" title="French" value="fr" checked="${instance.useLanguage == 'fr'}" />
          </f:entry>
          <f:entry>
            <f:radio name="useLanguage" title="Japanese" value="jp" checked="${instance.useLanguage == 'jp'}" />
          </f:entry>
      </f:entry>
    </f:optionalBlock>
  </f:section>

</j:jelly>

<?xml version='1.0' encoding='UTF-8'?>
<bar.foo.testing.HelloWorldBuilder_-Descriptor plugin="YetAnotherPluginTest@1.0-SNAPSHOT">
  <useForeignLanguage>true</useForeignLanguage>
  <useLanguage>jp</useLanguage>
</bar.foo.testing.HelloWorldBuilder_-Descriptor>
<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">

  <f:section title="Hello World Builder">
    <f:optionalBlock name="useForeignLanguage" title="Use foreign language" checked="${instance.useForeignLanguage}">
      <f:entry title="Language to use" field="useLanguage" description="Check if we should say hello in another language">
          <f:entry>
            <f:radio name="useLanguage" title="French" value="fr" checked="${instance.useLanguage == 'fr'}" />
          </f:entry>
          <f:entry>
            <f:radio name="useLanguage" title="Japanese" value="jp" checked="${instance.useLanguage == 'jp'}" />
          </f:entry>
      </f:entry>
    </f:optionalBlock>
  </f:section>

</j:jelly>