import net.sourceforge.stripes.validation.Validate; import net.sourceforge.stripes.validation.ValidationErrors; import net.sourceforge.stripes.validation.ValidationMethod; import net.sourceforge.stripes.validation.ValidationState; public class CustomValidator { private String username; private String password; @Validate(required = true) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @Validate(required = true) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @ValidationMethod(on = "login") public void validateLogin(ValidationErrors errors) { if (!isValidUser(username, password)) { errors.add("username", new SimpleError("Invalid username or password")); } } private boolean isValidUser(String username, String password) { // Perform custom validation logic here return true; } } <context-param> <param-name>Extension.Packages</param-name> <param-value>com.yourpackage</param-value> </context-param> import net.sourceforge.stripes.action.ActionBean; import net.sourceforge.stripes.action.ActionBeanContext; public class LoginAction implements ActionBean { private ActionBeanContext context; private String username; private String password; @ValidateNestedProperties({ @Validate(field = "username", required = true), @Validate(field = "password", required = true) }) private CustomValidator validator; public ActionBeanContext getContext() { return context; } public void setContext(ActionBeanContext context) { this.context = context; } 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 Resolution login() { // Perform login logic here return new ForwardResolution("/success.jsp"); } }


上一篇:
下一篇:
切换中文