1

我有以下方法:

@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;
}

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

感谢您的回答。

4

1 回答 1

3

自动完成仅适用于实体/视图模型,不适用于值。哪种有意义:autoComplete 的重点是查找现有实体。对于字符串,您可以使用选项,但不能使用自动完成。

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

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

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

并返回这些列表。

于 2017-03-08T06:22:43.023 回答