passwordField 密码输入

passwordField 是一个用于输入密码的组件。组件中输入的字符会默认进行掩码处理。用户可通过该组件设置或修改密码,或者在登录界面用于密码输入。

对于登录界面,请考虑使用专用的 loginForm 组件,该组件在用户登录过程中会提示用户输入密码。
  • XML 元素:passwordField

  • Java 类:JmixPasswordField

基本用法

除了没有 datatype 属性之外,passwordFieldtextField 基本一样。passwordField 的输入类型只能是 String

passwordField 基础示例:

<passwordField id="passwordField"
               label="New password"
               required="true"
               clearButtonVisible="true"
               helperText="Make it strong!"/>
<button id="createPasswordButton"
        text="Create"/>
@ViewComponent
protected JmixPasswordField passwordField;
@Autowired
protected Notifications notifications;

@Subscribe("createPasswordButton")
protected void onButtonClick(ClickEvent<Button> event) {
    if (passwordField.getValue().isEmpty() == false)
        notifications.create("Password created")
                .show();
    }
password field basic

事件和处理器

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。

ChangeEvent

com.vaadin.flow.component.textfield.GeneratedVaadinTextField.ChangeEvent 对应于 change DOM 事件。

InvalidChangeEvent

com.vaadin.flow.component.textfield.GeneratedVaadinTextField.InvalidChangeEvent 当组件的 invalid 属性发生变化时发送。

validator

为组件添加 validator 实例。验证器在检查到值非法时需要抛出 ValidationException 异常。

@Install(to = "passwordField", subject = "validator")
private void passwordFieldValidator(String value) {
    if (value != null && String.valueOf(value).length() < 8)
        throw new ValidationException("Password must be at least 8 characters long");
}

XML 内部元素

参考