开发者社区> 问答> 正文

struts2中action方法被调用两次?报错

今天再做一个注册功能时,提交表单到后台验证,validate方法被执行两次(第二次model为空,就报错了)不知道怎么回事,请各位指教??

/**
	 * 执行注册
	 */
	public String doRegist() {

		return "userLoginPage";
	}

	/**
	 * 注册校验:在执行注册方法的时候才执行
	 */
	public void validateDoRegist() {
		// 1、判断此用户是否已经注册,即邮箱是否存在
		try {
			boolean flag = userService.hasUser(model);
			// 存在
			if (flag) {
				addFieldError("email", "此用户已经存在");
				return;
			}
			// 不存在
			else {
				// 2、校验邮箱?
				String email = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
				if (!Pattern.matches(email, model.getEmail())
						|| !ValidataUtil.isValid(model.getEmail()))
					addFieldError("email", "邮箱格式错误");
				// 3、校验昵称?
				if (model.getNickName().length() > 10
						|| !ValidataUtil.isValid(model.getNickName()))
					addFieldError("nickName", "不能超过10个字");

				// 4、校验密码?
				String pass = "[a-zA-Z0-9]{6,12}";
				if (!Pattern.matches(pass, model.getPassword())
						|| !ValidataUtil.isValid(model.getPassword()))
					addFieldError("password", "密码格式错误");

				if (hasErrors())
					return;

				// 5、判断密码一致性
				if (!model.getPassword().equals(confirmPassword)) {
					addFieldError("password2", "密码不一致");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}



展开
收起
爱吃鱼的程序员 2020-06-10 15:36:03 509 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    谁知道啊,指点一二
    页面代码发来<divclass='ref'>

    引用来自“求一个网名”的评论

    谁知道啊,指点一二

    2020-06-10 15:36:19
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
AutoAlerts-From Data to Action 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载