多选

多选组件要求用户从列表中选择多个项目。 以下示例展示了其用法:spring-doc.cadn.net.cn

public class ComponentCommands {

	@Command(name = "component multi", description = "Multi selector", group = "Components")
	public String multiSelector() {
		List<SelectorItem<String>> items = new ArrayList<>();
		items.add(SelectorItem.of("key1", "value1"));
		items.add(SelectorItem.of("key2", "value2", false, true));
		items.add(SelectorItem.of("key3", "value3"));
		MultiItemSelector<String, SelectorItem<String>> component = new MultiItemSelector<>(getTerminal(),
				items, "testSimple", null);
		ResourceLoader resourceLoader = null; // getResourceLoader();
		TemplateExecutor templateExecutor = null; // getTemplateExecutor();
		component.setResourceLoader(resourceLoader);
		component.setTemplateExecutor(templateExecutor);
		MultiItemSelectorContext<String, SelectorItem<String>> context = component
			.run(MultiItemSelectorContext.empty());
		String result = context.getResultItems()
			.stream()
			.map(si -> si.getItem())
			.collect(Collectors.joining(","));
		return "Got value " + result;
	}

}

以下截图展示了典型的多选组件:spring-doc.cadn.net.cn

The context object是MultiItemSelectorContext。以下表格描述了其上下文变量:spring-doc.cadn.net.cn

表 1. MultiItemSelectorContext 模板变量
描述

valuesspring-doc.cadn.net.cn

The values returned when the component exists.spring-doc.cadn.net.cn

rowsspring-doc.cadn.net.cn

<p>可见的项目,其中行包含名称、选定、on-row 和启用项目的映射。</p>spring-doc.cadn.net.cn

modelspring-doc.cadn.net.cn

父级上下文变量(请参阅选择器组件上下文模板变量).spring-doc.cadn.net.cn