0

我有一个简单的网络应用程序:

它有一个简单的登录页面,带有用户名和密码。

我创建了一个名为 LoginForm 的 ActionForm 子类:

public class LoginForm extends ActionForm 
{
    private String username;
    private String password;

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

    public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    {
        ActionErrors errors=new ActionErrors();

        System.out.println("In LoginForm");

        if(username.equals(""))
        {
            errors.add("username",new ActionMessage("loginerror.usernameEmpty"));
        }
        else if(password.equals(""))
        {
            errors.add("password",new ActionMessage("loginerror.passwordEmpty"));
        }

        return errors;
    }

    public void reset(ActionMapping mapping,HttpServletRequest request)
    {
        this.username=null;
        this.password=null;
    }

}

还有一个 Action 子类:LoginAction

public class LoginAction extends Action
{
    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServlet response)
    {
        LoginForm loginform=(LoginForm)form;

        String username=loginform.getUsername();
        String password=loginform.getPassword();

        System.out.println("Username="+username+" & Password="+password);

        if(username.equals("lokesh"))
        {
            ActionMessages errors=new ActionMessages();

            errors.add("username",new ActionMessage("loginerror.usernameInvalid"));

            saveErrors(request,errors);

            return mapping.getInputForward();

        }

        return mapping.findForward("success");
    }

}

struts 动作映射为:

 <action-mappings>
        <action path="/login" type="occ.controller.LoginAction" name="LoginForm" scope="request" validate="true" input="/index.jsp"  >
            <forward name="success" path="/index.jsp" />
        </action>
    </action-mappings>

现在 ActionForm 验证正在完善,但在 LoginAction 中完成的复杂验证不起作用。

页面只是空白。

[我故意排除了进口]

4

1 回答 1

0

您必须从 org.apache.struts.validator.ValidatorForm(不是 ActionForm)扩展您的表单类(LoginForm)。我建议您使用内置的验证 Struts 功能。此网址可以帮助您:http ://struts.apache.org/1.2.4/userGuide/dev_validator.html 。使用它,您不必编写 Java 代码来验证常见(和复杂)规则。

于 2011-03-18T19:10:42.433 回答