用jdon框架出现的问题 一直不能解决

10-06-07 tangxin901024
最近在学习jdon框架 和jivejdon 试着模仿做一个

注册功能的时候遇到了个问题 。

就是如果表单的验证没有通过的话 ,formbean会出现死循环,cpu 使用率达到 90% 。

我的表单验证的代码如下 。

public void doValidate(ActionMapping mapping, HttpServletRequest request,
			List errors) {
				
		if ((getAction() == null) || ModelForm.EDIT_STR.equals(getAction())
				|| ModelForm.CREATE_STR.equals(getAction())) {
			// 注册
			if (addErrorIfStringEmpty(errors, "用户名不能为空", getUsername()))
					return;
				if (addErrorIfStringEmpty(errors, "密码不能为空", getPassword()))
					return;
				if (addErrorIfStringEmpty(errors, "确认密码不能为空", getPassword2()))
					return;
				if (addErrorIfStringEmpty(errors, "性别不能为空", getSex()))
					return;
				if (addErrorIfStringEmpty(errors, "邮箱地址不能为空", getEmail()))
					return;
				if (addErrorIfStringEmpty(errors, "密保问题不能为空", getPasswdtype()))
					return;
				if (addErrorIfStringEmpty(errors, "密保答案不能为空", getPasswdanswer()))
					return;
				if (addErrorIfStringEmpty(errors, "验证码不能为空", getRegisterCode()))
					return;
				if (getUsername().trim().length() < 5
						|| getUsername().trim().length() > 16
						|| !UtilValidate.isAlphanumeric(getUsername())) {
					errors.add("用户名由6-15位的字符和数字组成");
					return;
				}
				if (getPassword().trim().length() < 5
						|| getPassword().trim().length() > 16
						|| !UtilValidate.isAlphanumeric(getPassword())) {
					errors.add("密码由6-15位的字符和数字组成");
					return;
				}
				if (!getPassword().trim().equals(getPassword2().trim())) {
					errors.add("确认密码和密码不一致");
					return;
				}
				if (!SkinUtils.verifyRegisterCode(getRegisterCode().trim(),
						request)) {
					errors.add("验证码错误");
					return;
				}
			}

		

	}
<p>

不做表单验证 则可以注册成功 。 我使用的是 jdon封装的 struts formbean 继承了 ModeForm 。

<action name="accountForm" path="/newAccount" 
			type="com.jdon.strutsutil.ModelSaveAction" scope="request" validate="true"
			input="/register.jsp">
			<forward name="success" path="/login.jsp" />
			<forward name="failure" path="/register.jsp" />
</action>
<p>

求高手解答 。

[该贴被tangxin901024于2010-06-07 16:29修改过]

banq
2010-06-07 17:19
那可能是doValidate方法中有问题,在其中设置断点跟踪一下执行情况。

猜你喜欢