字符串输入

字符串输入组件要求用户输入简单的文本,如果内容包含敏感信息,则可以选择屏蔽值。以下清单显示了一个示例

@ShellComponent
public class ComponentCommands extends AbstractShellComponent {

	@ShellMethod(key = "component string", value = "String input", group = "Components")
	public String stringInput(boolean mask) {
		StringInput component = new StringInput(getTerminal(), "Enter value", "myvalue");
		component.setResourceLoader(getResourceLoader());
		component.setTemplateExecutor(getTemplateExecutor());
		if (mask) {
			component.setMaskCharacter('*');
		}
		StringInputContext context = component.run(StringInputContext.empty());
		return "Got value " + context.getResultValue();
	}
}

以下截屏视频显示了字符串输入组件的典型输出

上下文对象是 StringInputContext。下表列出了它的上下文变量

表 1. StringInputContext 模板变量
描述

defaultValue

默认值,如果已设置。否则为 null。

maskedInput

屏蔽的输入值

maskedResultValue

屏蔽的结果值

maskCharacter

屏蔽字符,如果已设置。否则为 null。

hasMaskCharacter

如果设置了屏蔽字符,则为 true。否则为 false。

model

父上下文变量(参见 TextComponentContext 模板变量)。