SSH2 AJAX LoginDemo 项目添加验证体系
Struts2 框架的验证体系主要分为:
action 中重写 validate() 进行 action类全局校验 action 中添加 validateXxx() 为 Xxx() 方法专门做的前置校验。(Strut2 利用反射自动映射) 使用Struts2 验证框架 进行校验
我们在 LoginDemo 中对这几种方法都会有举例:
?
Struts2 数据提交的步骤是:
校验框架validate()validateXxx()action()?
index.jsp
?style.css
package com.track2web.demo.action; import com.opensymphony.xwork2.ActionSupport;import com.track2web.demo.entity.User;import com.track2web.demo.service.IUserService; public class LoginAction extends ActionSupport { //定义登录是否成功状态,验证错误信息国际化信息常量 public static final String LOGIN_STATUS_SUCCESS = "login.status.message.success"; public static final String LOGIN_STATUS_FAIL = "login.status.messsage.fail"; public static final String USERNAME_VALIDATE_LENGTH = "input.minlenth.username"; public static final String USERPASS_VALIDATE_LENGTH = "input.minlenth.userpass"; //user对象接受页面传值 private User user; //loginMessage 回传登录是否成功的状态 private String loginMessage; //IOC接口 private IUserService userService; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String getLoginMessage() { return loginMessage; } public void setLoginMessage(String loginMessage) { this.loginMessage = loginMessage; } public IUserService getUserService() { return userService; } public void setUserService(IUserService userService) { this.userService = userService; } /** * action 全局验证 */ @Override public void validate() { if (this.user.getUserName().length()<4) { addFieldError("user.userName", getText(USERNAME_VALIDATE_LENGTH)); } } /** * 通过反射(Reflection)调用 validateLoginAjax()方法(为 loginAjax 方法验证数据) */ public void validateLoginAjax() { if (this.user.getUserPass().length()<4) { addFieldError("user.userPass", getText(USERPASS_VALIDATE_LENGTH)); } } /** * Ajax 方式所调用的 Action 方法 * @return 返回调用成功信号 */ public String loginAjax() { //将 登录信息保存至 user 属性,如果校验失败,user 属性值为 NULL this.user = this.userService.login(user); if (user==null) { this.loginMessage = getText(LOGIN_STATUS_FAIL); } else { this.loginMessage = getText(LOGIN_STATUS_SUCCESS); } return SUCCESS; }}