自动完成在 Apache ISIS 操作中不起作用

AutoComplete not working in Apache ISIS Action

我有以下方法:

@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(named = "Find alphabet Soup by Letter", bookmarking = BookmarkPolicy.AS_ROOT)
@MemberOrder(name = "Menu soups", sequence = "7")
public List<SomeObject> findByLetter(@ParameterLayout(named = "letter") final String letter) {
    return container.allMatches(new QueryDefault<SoupObject>(SoupObject.class, "findSoupQuery", "letter", letter)); 
}

我希望参数 letter 的输入字段是一个具有自动完成功能的下拉列表。 所以我添加了自动完成功能:

public Collection<String> autoComplete0FindByLetter(@MinLength(3) String search) {
    List<String> ret = new ArrayList<String>();     
    SoupFinder soupFinder = new SoupFinder();
    List<SoupObject> soups = soupFinder.findByLetter(search);
    for (SoupObject tmpSoup : soups) {
        ret.add(tmpSoup.getName(());
    }

    return ret;
}

所以我现在的问题是:当我在 Wicked UI 中使用函数 findByLetter 时,参数 letter 没有下拉字段。 为什么没有下拉字段分别为什么自动完成功能不起作用。我是不是忘记了什么?

感谢您的回答。

自动完成仅适用于 entities/view 模型,不适用于值。哪一种有意义:自动完成的目的是查找现有实体。对于字符串,您可以使用选择,但不能使用自动完成。

我不确定这是否已正确记录...在我调查之前,我也认为您的代码看起来是正确的。

最接近您所追求的行为的方法是使用一个非常简单的视图模型作为字符串的包装器,例如:

@ViewModel 
public class Choice {
    @Getter @Setter
    private String value;
}

和return这些的列表。