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

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;
}
}



}

不做表单验证 则可以注册成功 。 我使用的是 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>

求高手解答 。
[该贴被tangxin901024于2010-06-07 16:29修改过]

banq
2010-06-07 17:19

那可能是doValidate方法中有问题,在其中设置断点跟踪一下执行情况。