如何使用常规 HTML 连接并执行 Struts 2 中的 validate() 方法?

问题描述 投票:0回答:2
javascript java jquery jsp struts2
2个回答
2
投票

对于服务器端验证:

你必须在你的动作类中扩展

ActionSupport
。然后,重写
validate()
方法。这是一个例子:

@Override
    public void validate() {
       if (this.username == null || this.username.isEmpty()) {
            addFieldError("username", "Username is required");
        }
       if (this.password == null || this.password.isEmpty()) {
            addFieldError("password", "Password is required");
        }
    }

如果这对您有用,您可以在

validate()
方法

上添加更多语句

此外,您还可以使用

ActionSuport
getText()
方法来获取包含要显示的错误消息的字符串:

@Override
        public void validate() {
           if (this.username == null) {
                addFieldError("username", getText("err_username_req"));
            }
           ..... // same for password and other statements

        }

您所要做的就是将

err_username_req
作为属性包含在您的 struts2 资源文件中(就在您想要保留字符串的文件中,例如,用于验证错误和其他内容),然后您就可以开始了: ) .


0
投票

在常规 HTML 中,您缺少一些 Struts2 功能,例如

xhtml
主题。该主题允许显示操作错误以及输入字段。要验证输入字段,您需要将值作为参数传递给操作。提交表单时会创建操作实例。如果使用相同的名称将字段绑定到操作属性,效果会更好。

默认情况下,参数不仅会合并在操作上下文中,还会填充操作实例。确保您的操作类扩展了

ActionSupport
,因为它是调用
validation()
方法所必需的,并且具有验证错误的上下文。

使用

defaultStack
拦截器,包括
validation
拦截器
workflow
拦截器
。如果操作有验证错误,最后一个将阻止该操作执行。

<form method="post" id="frmLogin" action="login" onSubmit="return loginValidation()">

    <table class="tblLogin">
        <tr><th colspan="2">Log in</th></tr>
        <tr>
            <td class="labels">Username:</td>
            <td><input type="text" id="txtUsername" name="username" maxlength="10"></td>
        </tr>
        <tr>
            <td class="labels">Password:</td>
            <td><input type="password" id="txtPassword" name="password" maxlength="16"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="image" class="loginButton" src="design/images/btn3.png" value="Log in">
            </td>
        </tr>
    </table>
</form>
© www.soinside.com 2019 - 2024. All rights reserved.