繁体   English   中英

Struts2表单验证问题

[英]Struts2 Form Validation issue

我正在创建一个简单的登录应用程序作为我的第一个struts2表单验证应用程序。 但是,我无法使验证部分正常工作。 我已经尝试过在Google或Struts文档中可以找到的所有解决方案/示例。 请帮忙.....

这是我的代码

login.jsp

<s:form action="LoginAction" method="post">
  <s:textfield name="username" label="Login Name"/>
  <s:password name="password" label="Password"/>
  <s:submit value="Login"/>
  <s:fielderror></s:fielderror>
</s:form>

struts.xml

<action name="LoginAction" class="com.helloworld.action.LoginAction" method="execute">
   <result name="input">/login.jsp</result>
        <result name="error">/login.jsp</result>
        <result name="success">/HelloWorld.jsp</result>
</action>

LoginAction.java

 public class LoginAction extends ActionSupport{

private String username;
private String password;

public String execute() throws Exception {

    if(this.username.equals("admin") && this.password.equals("admin"))
        return SUCCESS;

    return ERROR;
}

public void setUsername(String username) {
    this.username = username;
}
public String getUsername(){
    return this.username;
}
public void setPassword(String password) {
    this.password = password;
}
public String getPassword(){
    return this.password;
}
}

LoginAction-Validation.xml

<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message key="user.required"/>
        </field-validator>
    </field>
</validators>

LoginAction.properties

user.required=UserName is required.

请帮忙...

谢谢

首先让我惊讶的是您的验证文件的名称,即LoginAction-Validation.xml。 我知道该文件名的第一部分区分大小写,但是我不知道第二部分。 尝试将其更改为LoginAction-validation.xml(小写v)。

另外,您能否描述您的构建环境和项目布局? 您是否正在使用Maven进行构建? 验证文件是否与它所引用的动作类在同一目录中?

最后,您使用的是任何自定义拦截器堆栈,还是仅使用默认拦截器堆栈?

请确保您已注册验证器文件,如下所示

  1. 将validateators.xml添加到WEB-INF / classes文件夹
  2. 将验证器条目添加到此文件

<validators>
   <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>

</validators>
  1. 确保您的操作类扩展了AbstractValidationActionSupport类

尝试将validate =“ true”添加到表单标签中,因为默认主题为xhtml ...

<s:form action="LoginAction" method="post" validate="true">
  <s:textfield name="username" label="Login Name"/>
  <s:password name="password" label="Password"/>
  <s:submit value="Login"/>
  <s:fielderror></s:fielderror>
</s:form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM