动态填充dropdownlistbox

9jyewag0  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(211)

我正在写一个jenkins插件。
为此,我想使用一个功能,原则上是这个示例ui插件中的dynamicdropdownlistbox。
源代码后的问题描述。

代码

我已经包含了一个使用伪代码的问题示例。我的ui由一个jelly文件使用

<f:entry title="Field A" field="fieldA"-->
  <s:cselect/>
</f:entry>

<f:entry title="Field B" field="fieldB"-->
  <s:cselect/>
</f:entry>

结合我的java方法。对于每个dropdownlistbox,可以实现dofill…-方法,该方法返回dropdownlistbox的内容。

public ListBoxModel doFillFieldA() {
  final StandardListBoxModel result = new StandardListBoxModel();
  // Fill the listbox with items
  return result;
}

public ListBoxModel doFillFieldB(@QueryParameter String fieldA) {
  final StandardListBoxModel result = new StandardListBoxModel();
  // Fill the listbox with items
  return result;
}

描述
这允许我使用从dropdownlistbox字段a选择的值并返回dropdownlistbox字段b的内容,该内容取决于dropdownlistbox字段a的选择。
为了让这一切顺利进行, @QueryParameter String fieldA (这是所选的值)必须为字段b**(在这种情况下,下拉字段a必须至少包含一个值)的dofill…*-方法所知,知道应该显示哪些项。到现在为止,一直都还不错。。。?不。

问题

与示例不同,我遇到了一个问题:
dropdownlistboxfield a的内容需要在另一个方法中(需要几秒钟)之前获取。
因此, doFillFieldA 需要等待此方法完成。
这个 doFillFieldB 然后必须等待 doFillFieldA 直到完成,才知道价值所在 @QueryParameter String fieldA (见下文),否则为空。
结论: doFillFieldA 正在使用等待“获取方法” sleep (丑陋,但有效)但是 doFillFieldB 也会同时执行(当dropdownlistboxfield a未填充任何值时)。这将导致填充dropdownlistboxfield a,具体取决于 @QueryParameter String fieldA 哪个是 Null .
注意:如果说在执行ajax更新时调用dofill方法(我认为)可能是相关的。这意味着,我不知道如何手动调用它们。现在我想解决这两个问题
重新回忆 doFillFieldB 填充dropdownlistboxfield a后,要考虑选定的值
不知怎的说 doFillFieldB 等待执行,直到dropdownlistboxfield a被填充。
在“获取方法”完成后手动执行ajax更新?
一个不同的解决方案来解决这个问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题